Commit c53cd2b9 by shuyunhu
parents 5346f57e 273cd919
email.fromEmail=rays_support@vip.163.com #email.fromEmail=rays_support@vip.163.com
email.password=chubanyun #email.password=chubanyun
email.reviewFromEmail=rays_review@vip.163.com #email.reviewFromEmail=rays_review@vip.163.com
email.reviewPassword=lgsz2017 #email.reviewPassword=lgsz2017
email.saysEmail=says_support@vip.163.com #email.reviewFromEmail=review@5rs.me
email.saysPassword=2017sayschuban #email.reviewPassword=reviewlgsc
## \u81EA\u5B9A\u4E49\u90AE\u7BB1 ## \u81EA\u5B9A\u4E49\u90AE\u7BB1
email.fromEmail.new=rays_support@vip.163.com email.user=support
email.password.new=chubanyun email.name=support@5rs.me
\ No newline at end of file email.password=supportlgsc
email.review.user=review
email.review.name=review@5rs.me
email.review.password=reviewlgsc
mail.smtp.host=smtp.5rs.me
mail.imap.host=imap.5rs.me
mail.pop.host=pop.5rs.me
\ No newline at end of file
email.fromEmail=rays_support@vip.163.com #email.fromEmail=rays_support@vip.163.com
email.password=chubanyun #email.password=chubanyun
email.reviewFromEmail=rays_review@vip.163.com #email.reviewFromEmail=rays_review@vip.163.com
email.reviewPassword=lgsz2017 #email.reviewPassword=lgsz2017
email.saysEmail=says_support@vip.163.com
email.saysPassword=2017sayschuban ## \u81EA\u5B9A\u4E49\u90AE\u7BB1
email.user=admin
## \u81EA\u5B9A\u4E49\u90AE\u7BB1 email.name=admin@raysyun.com
email.fromEmail.new=rays_support@vip.163.com email.password=lgsc2018!
email.password.new=chubanyun email.review.user=admin
\ No newline at end of file email.review.name=admin@raysyun.com
email.review.password=lgsc2018!
mail.smtp.host=smtp.raysyun.com
mail.imap.host=imap.raysyun.com
mail.pop.host=pop.raysyun.com
\ No newline at end of file
org.quartz.scheduler.instanceName = MyClusteredScheduler org.quartz.scheduler.instanceName = MyClusteredScheduler
org.quartz.scheduler.instanceId = AUTO org.quartz.scheduler.instanceId = AUTO
org.quartz.scheduler.idleWaitTime = 30000 org.quartz.scheduler.idleWaitTime = 30000
#============================================================================ #============================================================================
# Configure ThreadPool # Configure ThreadPool
#============================================================================ #============================================================================
org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool
org.quartz.threadPool.threadCount = 2 org.quartz.threadPool.threadCount = 2
org.quartz.threadPool.threadPriority = 5 org.quartz.threadPool.threadPriority = 5
org.quartz.scheduler.batchTriggerAcquisitionMaxCount=1000 org.quartz.scheduler.batchTriggerAcquisitionMaxCount=1000
org.quartz.threadPool.threadsInheritContextClassLoaderOfInitializingThread = true org.quartz.threadPool.threadsInheritContextClassLoaderOfInitializingThread = true
#============================================================================ #============================================================================
# Configure JobStore # Configure JobStore
#============================================================================ #============================================================================
org.quartz.jobStore.misfireThreshold = 60000 org.quartz.jobStore.misfireThreshold = 60000
org.quartz.jobStore.class = org.quartz.impl.jdbcjobstore.JobStoreTX org.quartz.jobStore.class = org.quartz.impl.jdbcjobstore.JobStoreTX
org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.StdJDBCDelegate org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.StdJDBCDelegate
org.quartz.jobStore.useProperties = false org.quartz.jobStore.useProperties = false
org.quartz.jobStore.dataSource = myDS org.quartz.jobStore.dataSource = myDS
org.quartz.jobStore.tablePrefix = QRTZ_ org.quartz.jobStore.tablePrefix = QRTZ_
org.quartz.jobStore.isClustered = true org.quartz.jobStore.isClustered = true
org.quartz.jobStore.maxMisfiresToHandleAtATime=20 org.quartz.jobStore.maxMisfiresToHandleAtATime=20
org.quartz.jobStore.clusterCheckinInterval = 20000 org.quartz.jobStore.clusterCheckinInterval = 20000
#============================================================================ #============================================================================
# Configure Datasources # Configure Datasources
#============================================================================ #============================================================================
org.quartz.dataSource.myDS.driver = com.mysql.jdbc.Driver org.quartz.dataSource.myDS.driver = com.mysql.jdbc.Driver
org.quartz.dataSource.myDS.URL = jdbc:mysql://192.168.92.42:3306/quartz?useUnicode=true&characterEncoding=utf-8&useSSL=false org.quartz.dataSource.myDS.URL = jdbc:mysql://192.168.92.42:3306/quartz?useUnicode=true&characterEncoding=utf-8&useSSL=false
org.quartz.dataSource.myDS.user = quartz org.quartz.dataSource.myDS.user = rays
org.quartz.dataSource.myDS.password = quartz123 org.quartz.dataSource.myDS.password = lgsC789
org.quartz.dataSource.myDS.maxConnections = 100 org.quartz.dataSource.myDS.maxConnections = 100
#============================================================================ #============================================================================
# Configure Provider Ip , Port # Configure Provider Ip , Port
#============================================================================ #============================================================================
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0" <project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<parent> <parent>
<groupId>com.pcloud.common</groupId> <groupId>com.pcloud.common</groupId>
<artifactId>pcloud-common-parent</artifactId> <artifactId>pcloud-common-parent</artifactId>
<version>2.1.0-RELEASE</version> <version>2.1.0-RELEASE</version>
</parent> </parent>
<artifactId>pcloud-common-core</artifactId> <artifactId>pcloud-common-core</artifactId>
<packaging>jar</packaging> <packaging>jar</packaging>
<version>${pcloud-common-core.version}</version> <version>${pcloud-common-core.version}</version>
<name>pcloud-common-core</name> <name>pcloud-common-core</name>
<url>http://maven.apache.org</url> <url>http://maven.apache.org</url>
<properties> <properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties> </properties>
<dependencies> <dependencies>
<dependency> <dependency>
<groupId>com.pcloud.common</groupId> <groupId>com.pcloud.common</groupId>
<artifactId>pcloud-common</artifactId> <artifactId>pcloud-common</artifactId>
<version>${pcloud-common.version}</version> <version>${pcloud-common.version}</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>junit</groupId> <groupId>junit</groupId>
<artifactId>junit</artifactId> <artifactId>junit</artifactId>
<scope>test</scope> <scope>test</scope>
</dependency> </dependency>
<!-- Database connect Begin --> <!-- Database connect Begin -->
<dependency> <dependency>
<groupId>com.alibaba</groupId> <groupId>com.alibaba</groupId>
<artifactId>druid</artifactId> <artifactId>druid</artifactId>
</dependency> </dependency>
<!-- Database connect End --> <!-- Database connect End -->
<!-- Mysql Driver Begin --> <!-- Mysql Driver Begin -->
<dependency> <dependency>
<groupId>mysql</groupId> <groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId> <artifactId>mysql-connector-java</artifactId>
</dependency> </dependency>
<!-- Mysql Driver End --> <!-- Mysql Driver End -->
<!-- ActiveMq Begin --> <!-- Jackson Begin -->
<dependency> <dependency>
<groupId>org.apache.activemq</groupId> <groupId>org.codehaus.jackson</groupId>
<artifactId>activemq-all</artifactId> <artifactId>jackson-mapper-asl</artifactId>
</dependency> </dependency>
<!-- ActiveMq End --> <!-- Jackson End -->
</dependencies>
<!-- Jackson Begin -->
<dependency> </project>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId>
</dependency>
<!-- Jackson End -->
<!-- Redis Begin -->
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
</dependency>
<!-- Redis End -->
</dependencies>
</project>
package com.pcloud.common.core.biz; package com.pcloud.common.core.biz;
import com.pcloud.common.core.dto.ExapiMessageDto; import org.springframework.amqp.core.AmqpTemplate;
import com.pcloud.common.exceptions.BizException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.jms.core.JmsTemplate;
import org.springframework.jms.core.MessageCreator;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import javax.jms.JMSException; import com.pcloud.common.core.aspect.ParamLog;
import javax.jms.ObjectMessage; import com.pcloud.common.core.constant.MQQueueConstant;
import javax.jms.Session; import com.pcloud.common.core.dto.ExapiMessageDto;
@Component("exapiQueueBiz") @Component("exapiQueueBiz")
public class ExapiQueueBizImpl implements ExapiQueueBiz{ public class ExapiQueueBizImpl implements ExapiQueueBiz {
private static final Logger LOGGER = LoggerFactory.getLogger(ExapiQueueBiz.class);
@Autowired(required = false) @Autowired
@Qualifier("jmsExapiTemplate") private AmqpTemplate amqpTemplate;
private JmsTemplate jmsExapiTemplate;
@Override @Override
public void sendMessageQueue(ExapiMessageDto exapiMessageDto) { @ParamLog("发送对外API queue")
MessageCreator messageCreator = new MessageCreator() { public void sendMessageQueue(ExapiMessageDto exapiMessageDto) {
@Override amqpTemplate.convertAndSend(MQQueueConstant.EXAPI, exapiMessageDto);
public ObjectMessage createMessage(Session session) throws JMSException { }
return session.createObjectMessage(exapiMessageDto);
}
};
try {
jmsExapiTemplate.send(messageCreator);
} catch (Exception e) {
LOGGER.error("发送失败," + e.getMessage() + "," + exapiMessageDto, e);
throw BizException.SEND_QUEUE_FAIL;
}
LOGGER.info("发送成功," + exapiMessageDto);
}
} }
package com.pcloud.common.core.biz; package com.pcloud.common.core.biz;
import com.pcloud.common.core.dto.ConvertQueueDto;
import com.pcloud.common.core.dto.FrontEventDto; import com.pcloud.common.core.dto.FrontEventDto;
import com.pcloud.common.exceptions.BizException; import com.pcloud.common.exceptions.BizException;
...@@ -10,10 +9,10 @@ import com.pcloud.common.exceptions.BizException; ...@@ -10,10 +9,10 @@ import com.pcloud.common.exceptions.BizException;
* @description: * @description:
*/ */
public interface FrontEventBiz { public interface FrontEventBiz {
/** /**
* 发送事件消息 * 发送事件消息
* *
* @param frontEventDto * @param frontEventDto
*/ */
public void sendFrontEventQueue(FrontEventDto frontEventDto) throws BizException; public void sendFrontEventQueue(FrontEventDto frontEventDto) throws BizException;
} }
package com.pcloud.common.core.biz; package com.pcloud.common.core.biz;
import com.pcloud.common.core.dto.FrontEventDto; import com.pcloud.common.core.aspect.ParamLog;
import com.pcloud.common.exceptions.BizException; import com.pcloud.common.core.constant.MQQueueConstant;
import org.slf4j.Logger; import com.pcloud.common.core.dto.FrontEventDto;
import org.slf4j.LoggerFactory; import com.pcloud.common.exceptions.BizException;
import org.springframework.beans.factory.annotation.Autowired; import org.slf4j.Logger;
import org.springframework.beans.factory.annotation.Qualifier; import org.slf4j.LoggerFactory;
import org.springframework.jms.core.JmsTemplate; import org.springframework.amqp.core.AmqpTemplate;
import org.springframework.jms.core.MessageCreator; import org.springframework.stereotype.Component;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import javax.jms.JMSException;
import javax.jms.ObjectMessage; /**
import javax.jms.Session; * @author Shichunshan
* @date: Created in 2018/4/17 11:09
/** * @description:
* @author Shichunshan */
* @date: Created in 2018/4/17 11:09 @Component("frontEventBiz")
* @description: public class FrontEventBizImpl implements FrontEventBiz {
*/ /**
@Component("frontEventBiz") *
public class FrontEventBizImpl implements FrontEventBiz{ */
/** private final static Logger LOGGER = LoggerFactory.getLogger(ConvertQueueBizImpl.class);
*
*/ // @Autowired(required=false)
private final static Logger logger= LoggerFactory.getLogger(ConvertQueueBizImpl.class); // @Qualifier("jmsFrontEventTemplate")
// private JmsTemplate jmsFrontEventTemplate;
@Autowired(required=false)
@Qualifier("jmsFrontEventTemplate") @Resource
private JmsTemplate jmsFrontEventTemplate; private AmqpTemplate amqpTemplate;
/**
* 发送事件消息 /**
* * 发送事件消息
* @param frontEventDto *
*/ * @param frontEventDto
@Override */
public void sendFrontEventQueue(FrontEventDto frontEventDto) throws BizException { // @Override
MessageCreator messageCreator = new MessageCreator() { // public void sendFrontEventQueue(FrontEventDto frontEventDto) throws
@Override // BizException {
public ObjectMessage createMessage(Session session) throws JMSException { // MessageCreator messageCreator = session ->
return session.createObjectMessage(frontEventDto); // session.createObjectMessage(frontEventDto);
} // try {
}; // jmsFrontEventTemplate.send(messageCreator);
try { // } catch (Exception e) {
jmsFrontEventTemplate.send(messageCreator); // logger.error("发送失败," + e.getMessage() + "," + frontEventDto, e);
} catch (Exception e) { // throw BizException.SEND_QUEUE_FAIL;
logger.error("发送失败," + e.getMessage() + "," + frontEventDto, e); // }
throw BizException.SEND_QUEUE_FAIL; // logger.info("发送成功," + frontEventDto);
} // }
logger.info("发送成功," + frontEventDto);
} /**
* 文件转码QUEUE
/** */
* 生成(事件ID/漏斗ID)前缀 @Override
* @ParamLog(description = "大数据埋点QUEUE")
* @param targetClass public void sendFrontEventQueue(FrontEventDto frontEventDto) throws BizException {
* @param targetType LOGGER.info("===大数据埋点===start --> frontEventDto:{}", frontEventDto);
*/ amqpTemplate.convertAndSend(MQQueueConstant.FRONT_EVENT, frontEventDto);
public static String generatePrefix(String targetClass,String targetType){ LOGGER.info("===大数据埋点===end --> frontEventDto:{}", frontEventDto);
StringBuilder prefix = new StringBuilder(); }
prefix.append(targetClass.toLowerCase()+"_");
prefix.append(targetType.toLowerCase()+"_"); /**
return prefix.toString(); * 生成(事件ID/漏斗ID)前缀
} *
} * @param targetClass
* @param targetType
*/
public static String generatePrefix(String targetClass, String targetType) {
return targetClass.toLowerCase() + "_" + targetType.toLowerCase() + "_";
}
}
package com.pcloud.common.core.biz; package com.pcloud.common.core.biz;
import javax.jms.JMSException;
import javax.jms.ObjectMessage;
import javax.jms.Session;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.amqp.core.AmqpTemplate;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.jms.core.JmsTemplate;
import org.springframework.jms.core.MessageCreator;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import com.pcloud.common.core.aspect.ParamLog;
import com.pcloud.common.core.constant.MQQueueConstant;
import com.pcloud.common.core.dto.FundMessageDto; import com.pcloud.common.core.dto.FundMessageDto;
import com.pcloud.common.exceptions.BizException; import com.pcloud.common.exceptions.BizException;
/** /**
* @description 基金资源变更记录消息队列实现类
* @author PENG * @author PENG
* @date 2017年10月18日 下午2:11:52
* @version 1.0 * @version 1.0
* @description 基金资源变更记录消息队列实现类
* @date 2017年10月18日 下午2:11:52
*/ */
@Component("fundQueueBiz") @Component("fundQueueBiz")
public class FundQueueBizImpl implements FundQueueBiz { public class FundQueueBizImpl implements FundQueueBiz {
...@@ -29,29 +24,20 @@ public class FundQueueBizImpl implements FundQueueBiz { ...@@ -29,29 +24,20 @@ public class FundQueueBizImpl implements FundQueueBiz {
*/ */
private final static Logger logger = LoggerFactory.getLogger(FundQueueBizImpl.class); private final static Logger logger = LoggerFactory.getLogger(FundQueueBizImpl.class);
@Autowired(required = false) @Autowired
@Qualifier("jmsFundTemplate") private AmqpTemplate amqpTemplate;
private JmsTemplate jmsFundTemplate;
/** /**
* 发送队列 * 发送队列
*/ */
@Override @Override
@ParamLog("发送基金资源变更记录消息QUEUE")
public void sendFundMessage(FundMessageDto fundMessageDto) throws BizException { public void sendFundMessage(FundMessageDto fundMessageDto) throws BizException {
MessageCreator messageCreator = new MessageCreator() {
@Override
public ObjectMessage createMessage(Session session) throws JMSException {
return session.createObjectMessage(fundMessageDto);
}
};
try { try {
jmsFundTemplate.send(messageCreator); amqpTemplate.convertAndSend(MQQueueConstant.FUND, fundMessageDto);
} catch (Exception e) { } catch (Exception e) {
logger.error("发送失败," + e.getMessage() + "," + fundMessageDto.toString(), e); logger.error("发送失败," + e.getMessage() + "," + fundMessageDto.toString(), e);
throw BizException.SEND_QUEUE_FAIL; throw BizException.SEND_QUEUE_FAIL;
} }
logger.info("发送成功," + fundMessageDto.toString());
} }
} }
package com.pcloud.common.core.biz; package com.pcloud.common.core.biz;
import javax.jms.JMSException; import org.springframework.amqp.core.AmqpTemplate;
import javax.jms.ObjectMessage;
import javax.jms.Session;
import org.apache.activemq.command.ActiveMQQueue;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.jms.core.JmsTemplate;
import org.springframework.jms.core.MessageCreator;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import com.pcloud.common.core.aspect.ParamLog;
import com.pcloud.common.core.constant.FunnelFlowStruct.FlowNode; import com.pcloud.common.core.constant.FunnelFlowStruct.FlowNode;
import com.pcloud.common.core.constant.FunnelFlowStruct.TargetRoleType; import com.pcloud.common.core.constant.FunnelFlowStruct.TargetRoleType;
import com.pcloud.common.core.constant.FunnelFlowStruct.TargetType; import com.pcloud.common.core.constant.FunnelFlowStruct.TargetType;
import com.pcloud.common.core.constant.MQQueueConstant;
import com.pcloud.common.core.dto.FunnelFlowQueueDto; import com.pcloud.common.core.dto.FunnelFlowQueueDto;
import com.pcloud.common.exceptions.BizException; import com.pcloud.common.exceptions.BizException;
/** /**
* @描述: 发送模板消息队列实现类 * @描述: 发送模板消息队列实现类 @作者: shuyh @创建时间: 2018年1月9日 @版本:1.0
* @作者: shuyh
* @创建时间: 2018年1月9日
* @版本:1.0
*/ */
@Component("funnelFlowQueueBiz") @Component("funnelFlowQueueBiz")
public class FunnelFlowQueueBizImpl implements FunnelFlowQueueBiz{ public class FunnelFlowQueueBizImpl implements FunnelFlowQueueBiz {
/** @Autowired
* private AmqpTemplate amqpTemplate;
*/
private final static Logger logger=LoggerFactory.getLogger(FunnelFlowQueueBizImpl.class);
@Autowired(required=false)
@Qualifier("jmsFunnelFlowTemplate")
private JmsTemplate jmsFunnelFlowTemplate;
@Autowired(required=false)
@Qualifier("funnelFlowQueue")
private ActiveMQQueue funnelFlowQueue;
/** /**
* 发送队列 * 用户漏斗QUEUE
*/ */
@Override @Override
@ParamLog("用户漏斗QUEUE")
public void sendMessageQueue(FunnelFlowQueueDto funnelFlowQueueDto) throws BizException { public void sendMessageQueue(FunnelFlowQueueDto funnelFlowQueueDto) throws BizException {
MessageCreator messageCreator = new MessageCreator() { amqpTemplate.convertAndSend(MQQueueConstant.FUNNEL_FLOW, funnelFlowQueueDto);
@Override
public ObjectMessage createMessage(Session session) throws JMSException {
return session.createObjectMessage(funnelFlowQueueDto);
}
};
try {
jmsFunnelFlowTemplate.send(funnelFlowQueue, messageCreator);
} catch (Exception e) {
logger.error("发送失败," + e.getMessage() + "," + funnelFlowQueueDto, e);
throw BizException.SEND_QUEUE_FAIL;
}
logger.info("发送成功," + funnelFlowQueueDto);
} }
/** /**
* 发送队列 * 发送队列
*/ */
@Override @Override
public void sendMessageQueue(TargetType targetType, TargetRoleType targetRoleType, FlowNode flowNode, String ip, String userAgent) throws BizException { public void sendMessageQueue(TargetType targetType, TargetRoleType targetRoleType, FlowNode flowNode, String ip,
FunnelFlowQueueDto funnelFlowQueueDto = new FunnelFlowQueueDto(targetType, targetRoleType, flowNode, ip, userAgent); String userAgent) throws BizException {
FunnelFlowQueueDto funnelFlowQueueDto = new FunnelFlowQueueDto(targetType, targetRoleType, flowNode, ip,
userAgent);
sendMessageQueue(funnelFlowQueueDto); sendMessageQueue(funnelFlowQueueDto);
} }
...@@ -75,18 +45,22 @@ public class FunnelFlowQueueBizImpl implements FunnelFlowQueueBiz{ ...@@ -75,18 +45,22 @@ public class FunnelFlowQueueBizImpl implements FunnelFlowQueueBiz{
* 发送队列 * 发送队列
*/ */
@Override @Override
public void sendMessageQueue(TargetType targetType, Long targetId, TargetRoleType targetRoleType, Long targetRoleId, FlowNode flowNode) throws BizException { public void sendMessageQueue(TargetType targetType, Long targetId, TargetRoleType targetRoleType, Long targetRoleId,
FunnelFlowQueueDto funnelFlowQueueDto = new FunnelFlowQueueDto(targetType, targetId, targetRoleType, targetRoleId, flowNode); FlowNode flowNode) throws BizException {
FunnelFlowQueueDto funnelFlowQueueDto = new FunnelFlowQueueDto(targetType, targetId, targetRoleType,
targetRoleId, flowNode);
sendMessageQueue(funnelFlowQueueDto); sendMessageQueue(funnelFlowQueueDto);
} }
/** /**
* 发送队列 * 发送队列
*/ */
@Override @Override
public void sendMessageQueue(TargetType targetType, Long targetId, String subtypeCode, TargetRoleType targetRoleType, Long targetRoleId, FlowNode flowNode) throws BizException { public void sendMessageQueue(TargetType targetType, Long targetId, String subtypeCode,
FunnelFlowQueueDto funnelFlowQueueDto = new FunnelFlowQueueDto(targetType, targetId, subtypeCode, targetRoleType, targetRoleId, flowNode); TargetRoleType targetRoleType, Long targetRoleId, FlowNode flowNode) throws BizException {
FunnelFlowQueueDto funnelFlowQueueDto = new FunnelFlowQueueDto(targetType, targetId, subtypeCode,
targetRoleType, targetRoleId, flowNode);
sendMessageQueue(funnelFlowQueueDto); sendMessageQueue(funnelFlowQueueDto);
} }
} }
package com.pcloud.common.core.biz; package com.pcloud.common.core.biz;
import javax.jms.JMSException; import org.springframework.amqp.core.AmqpTemplate;
import javax.jms.ObjectMessage;
import javax.jms.Session;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.jms.core.JmsTemplate;
import org.springframework.jms.core.MessageCreator;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import com.pcloud.common.core.aspect.ParamLog;
import com.pcloud.common.core.constant.MQQueueConstant;
import com.pcloud.common.core.dto.LabelUsedMessageDto; import com.pcloud.common.core.dto.LabelUsedMessageDto;
import com.pcloud.common.exceptions.BizException; import com.pcloud.common.exceptions.BizException;
/** /**
* @描述: 标签使用队列实现类 * @描述: 标签使用队列实现类 @作者: shuyh @创建时间: 2017年5月23日 @版本:1.0
* @作者: shuyh
* @创建时间: 2017年5月23日
* @版本:1.0
*/ */
@Component("labelUsedQueueBiz") @Component("labelUsedQueueBiz")
public class LabelUsedQueueBizImpl implements LabelUsedQueueBiz{ public class LabelUsedQueueBizImpl implements LabelUsedQueueBiz {
/** @Autowired
* private AmqpTemplate amqpTemplate;
*/
private final static Logger logger = LoggerFactory.getLogger(LabelUsedQueueBizImpl.class);
@Autowired(required=false)
@Qualifier("jmsLabelUsedTemplate")
private JmsTemplate jmsLabelUsedTemplate;
/**
* 发送队列
*/
@Override @Override
@ParamLog("标签使用QUEUE")
public void sendMessageQueue(LabelUsedMessageDto labelUsedMessageDto) throws BizException { public void sendMessageQueue(LabelUsedMessageDto labelUsedMessageDto) throws BizException {
MessageCreator messageCreator = new MessageCreator() { amqpTemplate.convertAndSend(MQQueueConstant.LABEL_USED, labelUsedMessageDto);
@Override
public ObjectMessage createMessage(Session session) throws JMSException {
return session.createObjectMessage(labelUsedMessageDto);
}
};
try {
jmsLabelUsedTemplate.send(messageCreator);
} catch (Exception e) {
logger.error("发送失败," + e.getMessage() + "," + labelUsedMessageDto, e);
throw BizException.SEND_QUEUE_FAIL;
}
logger.info("发送成功," + labelUsedMessageDto);
} }
} }
package com.pcloud.common.core.biz; package com.pcloud.common.core.biz;
import com.pcloud.common.core.dto.DynamicDto; import org.springframework.amqp.core.AmqpTemplate;
import com.pcloud.common.exceptions.BizException;
import org.apache.activemq.command.ActiveMQQueue;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.jms.core.JmsTemplate;
import org.springframework.jms.core.MessageCreator;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import javax.jms.JMSException; import com.pcloud.common.core.aspect.ParamLog;
import javax.jms.ObjectMessage; import com.pcloud.common.core.constant.MQQueueConstant;
import javax.jms.Session; import com.pcloud.common.core.dto.DynamicDto;
import com.pcloud.common.exceptions.BizException;
/** /**
* @描述: * @描述:
* @作者:lucas *
* @创建时间:2017年12月14日,15:58 * @作者:lucas @创建时间:2017年12月14日,15:58 @版本:1.0
* @版本:1.0
*/ */
@Component("merchantDynamicQueueBiz") @Component("merchantDynamicQueueBiz")
public class MerchantDynamicQueueBizImpl implements MerchantDynamicQueueBiz { public class MerchantDynamicQueueBizImpl implements MerchantDynamicQueueBiz {
private final static Logger logger= LoggerFactory.getLogger(MerchantDynamicQueueBizImpl.class); @Autowired
/** private AmqpTemplate amqpTemplate;
* 消息模板
*/
@Autowired(required=false)
@Qualifier("jmsDynamicTemplate")
private JmsTemplate jmsDynamicTemplate;
@Override @Override
public void send(DynamicDto dynamicDto) throws BizException { @ParamLog("动态监控QUEUE")
MessageCreator messageCreator = new MessageCreator() { public void send(DynamicDto dynamicDto) throws BizException {
@Override amqpTemplate.convertAndSend(MQQueueConstant.MERCHANT_DYNAMIC, dynamicDto);
public ObjectMessage createMessage(Session session) throws JMSException { }
return session.createObjectMessage(dynamicDto);
}
};
try {
jmsDynamicTemplate.send(messageCreator);
} catch (Exception e) {
logger.error("发送失败,"+e.getMessage()+","+dynamicDto,e);
throw BizException.SEND_QUEUE_FAIL;
}
logger.info("发送成功,"+dynamicDto);
}
} }
...@@ -2,6 +2,7 @@ package com.pcloud.common.core.biz; ...@@ -2,6 +2,7 @@ package com.pcloud.common.core.biz;
import com.pcloud.common.core.dto.SendAppMessageDto;
import com.pcloud.common.core.dto.SendEmailDto; import com.pcloud.common.core.dto.SendEmailDto;
import com.pcloud.common.core.dto.SendMessageDto; import com.pcloud.common.core.dto.SendMessageDto;
import com.pcloud.common.core.dto.SendNotifyDto; import com.pcloud.common.core.dto.SendNotifyDto;
...@@ -37,5 +38,10 @@ public interface MessageBiz { ...@@ -37,5 +38,10 @@ public interface MessageBiz {
* @param sendSMSDto * @param sendSMSDto
*/ */
void sendSMS(SendMessageDto smsParam); void sendSMS(SendMessageDto smsParam);
/**
* 短信推送
*/
void sendAppMessage(SendAppMessageDto sendAppMessageDto);
} }
package com.pcloud.common.core.biz; package com.pcloud.common.core.biz;
import java.io.IOException;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.Session;
import org.codehaus.jackson.map.ObjectMapper; import org.codehaus.jackson.map.ObjectMapper;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.amqp.core.AmqpTemplate;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.jms.core.JmsTemplate;
import org.springframework.jms.core.MessageCreator;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import com.pcloud.common.core.aspect.ParamLog;
import com.pcloud.common.core.constant.MQQueueConstant;
import com.pcloud.common.core.dto.SendAppMessageDto;
import com.pcloud.common.core.dto.SendEmailDto; import com.pcloud.common.core.dto.SendEmailDto;
import com.pcloud.common.core.dto.SendMessageDto; import com.pcloud.common.core.dto.SendMessageDto;
import com.pcloud.common.core.dto.SendNotifyDto; import com.pcloud.common.core.dto.SendNotifyDto;
...@@ -20,148 +16,82 @@ import com.pcloud.common.utils.mq.MqMessage; ...@@ -20,148 +16,82 @@ import com.pcloud.common.utils.mq.MqMessage;
import com.pcloud.common.utils.mq.MqMessageTypeEnum; import com.pcloud.common.utils.mq.MqMessageTypeEnum;
/** /**
*
* @描述:邮件业务实现 * @描述:邮件业务实现
* @作者:shichunshan * @作者:shichunshan
* @创建时间:2016年6月24日,下午2:19:27 * @创建时间:2016年6月24日,下午2:19:27 @版本:1.0
* @版本:1.0
*/ */
@Component("mailBiz") @Component("messageQueueBiz")
public class MessageBizImpl implements MessageBiz{ public class MessageBizImpl implements MessageBiz {
private final static Logger logger=LoggerFactory.getLogger(MessageBizImpl.class); private final static Logger logger = LoggerFactory.getLogger(MessageBizImpl.class);
@Autowired
private AmqpTemplate amqpTemplate;
/** /**
* 消息模板 * 发送邮件
*
* @param sendEmailDto
*/ */
@Autowired(required = false)
@Qualifier("jmsMessageTemplate")
private JmsTemplate jmsMessageTemplate;
@Override @Override
@ParamLog("发送邮件")
public void sendEmail(SendEmailDto sendEmailDto) { public void sendEmail(SendEmailDto sendEmailDto) {
MessageCreator messageCreator = new MessageCreator() {
@Override
public Message createMessage(Session session) throws JMSException {
MqMessage mqMessage = null;
try {
mqMessage = formateMessage(sendEmailDto);
logger.info("mqMessage+++++++++++" + mqMessage);
} catch (IOException e) {
logger.error("邮件发送失败," + sendEmailDto);
return null;
}
return session.createObjectMessage(mqMessage);
}
};
try { try {
jmsMessageTemplate.send(messageCreator); ObjectMapper objectMapper = new ObjectMapper();
String content = objectMapper.writeValueAsString(sendEmailDto);
MqMessage mqMessage = new MqMessage(MqMessageTypeEnum.EMAIL, content);
amqpTemplate.convertAndSend(MQQueueConstant.MESSAGE, mqMessage);
} catch (Exception e) { } catch (Exception e) {
logger.error("邮件发送失败," + e.getMessage() + "," + sendEmailDto, e); logger.error("邮件发送失败," + e.getMessage() + "," + sendEmailDto, e);
return;
} }
logger.info("邮件发送成功," + sendEmailDto);
} }
/** /**
* 格式化邮件内容 * 发送站内信
*
* @param mailParam
* 邮件参数
* @return 队列消息
* @throws IOException
* 序列化为json错误
*/ */
private MqMessage formateMessage(SendEmailDto sendEmailDto) throws IOException {
ObjectMapper objectMapper = new ObjectMapper();
String content = objectMapper.writeValueAsString(sendEmailDto);
return new MqMessage(MqMessageTypeEnum.EMAIL, content);
}
@Override @Override
@ParamLog("发送站内信")
public void sendLetter(SendNotifyDto sendNotifyDto) { public void sendLetter(SendNotifyDto sendNotifyDto) {
MessageCreator messageCreator = new MessageCreator() {
@Override
public Message createMessage(Session session) throws JMSException {
MqMessage mqMessage = null;
try {
mqMessage = formateMessage(sendNotifyDto);
logger.info("mqMessage+++++++++++" + mqMessage);
} catch (IOException e) {
logger.error("站内信发送失败," + sendNotifyDto);
return null;
}
return session.createObjectMessage(mqMessage);
}
};
try { try {
jmsMessageTemplate.send(messageCreator); ObjectMapper objectMapper = new ObjectMapper();
String content = objectMapper.writeValueAsString(sendNotifyDto);
MqMessage mqMessage = new MqMessage(MqMessageTypeEnum.LETTER, content);
amqpTemplate.convertAndSend(MQQueueConstant.MESSAGE, mqMessage);
} catch (Exception e) { } catch (Exception e) {
logger.error("站内信发送失败," + e.getMessage() + "," + sendNotifyDto, e); logger.error("站内信发送失败," + e.getMessage() + "," + sendNotifyDto, e);
return;
} }
logger.info("站内信发送成功," + sendNotifyDto);
} }
/** /**
* 格式化站内信内容 * 发送短信
*
* @param sendNotifyDto
* 站内信参数
* @return 队列消息
* @throws IOException
* 序列化为json错误
*/ */
private MqMessage formateMessage(SendNotifyDto sendNotifyDto) throws IOException {
ObjectMapper objectMapper = new ObjectMapper();
String content = objectMapper.writeValueAsString(sendNotifyDto);
return new MqMessage(MqMessageTypeEnum.LETTER, content);
}
@Override @Override
public void sendSMS(SendMessageDto smsParam) { @ParamLog("发送短信")
MessageCreator messageCreator = new MessageCreator() { public void sendSMS(SendMessageDto sendMessageDto) {
@Override
public Message createMessage(Session session) throws JMSException {
MqMessage mqMessage = null;
try {
mqMessage = formateMessage(smsParam);
logger.info("mqMessage+++++++++++" + mqMessage);
} catch (IOException e) {
logger.error("短信发送失败," + smsParam);
return null;
}
return session.createObjectMessage(mqMessage);
}
};
try { try {
jmsMessageTemplate.send(messageCreator); ObjectMapper objectMapper = new ObjectMapper();
String content = objectMapper.writeValueAsString(sendMessageDto);
MqMessage mqMessage = new MqMessage(MqMessageTypeEnum.SHORT_MESSAGE, content);
amqpTemplate.convertAndSend(MQQueueConstant.MESSAGE, mqMessage);
} catch (Exception e) { } catch (Exception e) {
logger.error("短信发送失败," + e.getMessage() + "," + smsParam, e); logger.error("短信发送失败," + e.getMessage() + "," + sendMessageDto, e);
return;
} }
logger.info("短信发送成功," + smsParam);
} }
/** /**
* 格式化内容 * 发送app推送
*
* @param sendSMSDto
* 邮件参数
* @return 队列消息
* @throws IOException
* 序列化为json错误
*/ */
private MqMessage formateMessage(SendMessageDto smsParam) throws IOException { @Override
ObjectMapper objectMapper = new ObjectMapper(); @ParamLog("发送APP推送")
String content = objectMapper.writeValueAsString(smsParam); public void sendAppMessage(SendAppMessageDto sendAppMessageDto) {
return new MqMessage(MqMessageTypeEnum.SHORT_MESSAGE, content); try {
ObjectMapper objectMapper = new ObjectMapper();
String content = objectMapper.writeValueAsString(sendAppMessageDto);
MqMessage mqMessage = new MqMessage(MqMessageTypeEnum.APP_MESSAGE, content);
amqpTemplate.convertAndSend(MQQueueConstant.MESSAGE, mqMessage);
} catch (Exception e) {
logger.error("APP推送发送失败," + e.getMessage() + "," + sendAppMessageDto, e);
}
} }
} }
package com.pcloud.common.core.biz; package com.pcloud.common.core.biz;
import javax.jms.JMSException; import org.springframework.amqp.core.AmqpTemplate;
import javax.jms.ObjectMessage;
import javax.jms.Session;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.jms.core.JmsTemplate;
import org.springframework.jms.core.MessageCreator;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.pcloud.common.core.aspect.ParamLog;
import com.pcloud.common.core.constant.MQQueueConstant;
import com.pcloud.common.core.dto.OperationLogDto; import com.pcloud.common.core.dto.OperationLogDto;
import com.pcloud.common.exceptions.BizException; import com.pcloud.common.exceptions.BizException;
@Service("operationLogQueueBiz") @Service("operationLogQueueBiz")
public class OperationLogQueueBizImpl implements OperationLogQueueBiz { public class OperationLogQueueBizImpl implements OperationLogQueueBiz {
/** @Autowired
* private AmqpTemplate amqpTemplate;
*/
private final static Logger logger = LoggerFactory.getLogger(OperationLogQueueBizImpl.class);
/**
* 消息模板
*/
@Autowired(required = false)
@Qualifier("jmsLogTemplate")
private JmsTemplate jmsLogTemplate;
@Override @Override
@ParamLog("日志记录QUEUE")
public void send(OperationLogDto operationLog) throws BizException { public void send(OperationLogDto operationLog) throws BizException {
MessageCreator messageCreator = new MessageCreator() { amqpTemplate.convertAndSend(MQQueueConstant.LOG, operationLog);
@Override
public ObjectMessage createMessage(Session session) throws JMSException {
return session.createObjectMessage(operationLog);
}
};
try {
jmsLogTemplate.send(messageCreator);
} catch (Exception e) {
logger.error("发送失败," + e.getMessage() + "," + operationLog, e);
throw BizException.SEND_QUEUE_FAIL;
}
logger.info("发送成功," + operationLog);
} }
} }
package com.pcloud.common.core.biz; package com.pcloud.common.core.biz;
import javax.jms.JMSException; import org.springframework.amqp.core.AmqpTemplate;
import javax.jms.ObjectMessage;
import javax.jms.Session;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.jms.core.JmsTemplate;
import org.springframework.jms.core.MessageCreator;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import com.pcloud.common.core.aspect.ParamLog;
import com.pcloud.common.core.constant.MQQueueConstant;
import com.pcloud.common.core.dto.TemplateMessageDto; import com.pcloud.common.core.dto.TemplateMessageDto;
import com.pcloud.common.exceptions.BizException; import com.pcloud.common.exceptions.BizException;
...@@ -19,39 +13,21 @@ import com.pcloud.common.exceptions.BizException; ...@@ -19,39 +13,21 @@ import com.pcloud.common.exceptions.BizException;
* *
* @描述:发送模板消息队列实现类 * @描述:发送模板消息队列实现类
* @作者:songx * @作者:songx
* @创建时间:2016年11月23日,下午4:53:43 * @创建时间:2016年11月23日,下午4:53:43 @版本:1.0
* @版本:1.0
*/ */
@Component("templateQueueBiz") @Component("templateQueueBiz")
public class TemplateQueueBizImpl implements TemplateQueueBiz { public class TemplateQueueBizImpl implements TemplateQueueBiz {
/** @Autowired
* private AmqpTemplate amqpTemplate;
*/
private final static Logger logger=LoggerFactory.getLogger(TemplateQueueBizImpl.class);
@Autowired(required=false)
@Qualifier("jmsTemplateTemplate")
private JmsTemplate jmsTemplateTemplate;
/** /**
* 发送队列 * 发送模板消息
*/ */
@Override @Override
@ParamLog("发送模板消息QUEUE")
public void sendMessageQueue(TemplateMessageDto templateMessageDto) throws BizException { public void sendMessageQueue(TemplateMessageDto templateMessageDto) throws BizException {
MessageCreator messageCreator = new MessageCreator() { amqpTemplate.convertAndSend(MQQueueConstant.TEMPLATE, templateMessageDto);
@Override
public ObjectMessage createMessage(Session session) throws JMSException {
return session.createObjectMessage(templateMessageDto);
}
};
try {
jmsTemplateTemplate.send(messageCreator);
} catch (Exception e) {
logger.error("发送失败," + e.getMessage() + "," + templateMessageDto, e);
throw BizException.SEND_QUEUE_FAIL;
}
logger.info("发送成功," + templateMessageDto);
} }
} }
package com.pcloud.common.core.biz; package com.pcloud.common.core.biz;
import javax.jms.JMSException; import org.springframework.amqp.core.AmqpTemplate;
import javax.jms.ObjectMessage;
import javax.jms.Session;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.jms.core.JmsTemplate;
import org.springframework.jms.core.MessageCreator;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.pcloud.common.core.aspect.ParamLog;
import com.pcloud.common.core.constant.MQQueueConstant;
import com.pcloud.common.core.dto.UserActionMessageDto; import com.pcloud.common.core.dto.UserActionMessageDto;
import com.pcloud.common.exceptions.BizException; import com.pcloud.common.exceptions.BizException;
/** /**
* @描述: 发送模板消息队列实现类 * @描述: 发送模板消息队列实现类 @作者: shuyh @创建时间: 2017年5月23日 @版本:1.0
* @作者: shuyh
* @创建时间: 2017年5月23日
* @版本:1.0
*/ */
@Service("userActionQueueBiz") @Service("userActionQueueBiz")
public class UserActionQueueBizImpl implements UserActionQueueBiz{ public class UserActionQueueBizImpl implements UserActionQueueBiz {
/** @Autowired
* private AmqpTemplate amqpTemplate;
*/
private final static Logger logger=LoggerFactory.getLogger(UserActionQueueBizImpl.class);
@Autowired(required=false)
@Qualifier("jmsUserActionTemplate")
private JmsTemplate jmsUserActionTemplate;
/** /**
* 发送队列 * 用户行为QUEUE
*/ */
@Override @Override
@ParamLog("用户行为QUEUE")
public void sendMessageQueue(UserActionMessageDto userActionMessageDto) throws BizException { public void sendMessageQueue(UserActionMessageDto userActionMessageDto) throws BizException {
MessageCreator messageCreator = new MessageCreator() { amqpTemplate.convertAndSend(MQQueueConstant.USER_ACTION, userActionMessageDto);
@Override
public ObjectMessage createMessage(Session session) throws JMSException {
return session.createObjectMessage(userActionMessageDto);
}
};
try {
jmsUserActionTemplate.send(messageCreator);
} catch (Exception e) {
logger.error("发送失败," + e.getMessage() + "," + userActionMessageDto, e);
throw BizException.SEND_QUEUE_FAIL;
}
logger.info("发送成功," + userActionMessageDto);
} }
} }
package com.pcloud.common.core.biz; package com.pcloud.common.core.biz;
import com.pcloud.common.core.dto.WeektaskMessageDto; import org.springframework.amqp.core.AmqpTemplate;
import com.pcloud.common.exceptions.BizException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.jms.core.JmsTemplate;
import org.springframework.jms.core.MessageCreator;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import javax.jms.JMSException; import com.pcloud.common.core.aspect.ParamLog;
import javax.jms.ObjectMessage; import com.pcloud.common.core.constant.MQQueueConstant;
import javax.jms.Session; import com.pcloud.common.core.dto.WeektaskMessageDto;
import com.pcloud.common.exceptions.BizException;
/** /**
* 编辑周任务队列实现 * 编辑周任务队列实现
...@@ -21,37 +16,18 @@ import javax.jms.Session; ...@@ -21,37 +16,18 @@ import javax.jms.Session;
* @create 2017-09-21 09:33 * @create 2017-09-21 09:33
**/ **/
@Component("weektaskQueueBiz") @Component("weektaskQueueBiz")
public class WeektaskQueueBizImpl implements WeektaskQueueBiz{ public class WeektaskQueueBizImpl implements WeektaskQueueBiz {
private final static Logger logger= LoggerFactory.getLogger(WeektaskQueueBizImpl.class); @Autowired
private AmqpTemplate amqpTemplate;
@Autowired(required=false)
@Qualifier("jmsWeektaskTemplate") /**
private JmsTemplate jmsWeekstaskTemplate; * 发送队列
*/
// @Autowired(required= false) @Override
// @Qualifier("raystask") @ParamLog("红榜任务QUEUE")
// private ActiveMQQueue templateQueue; public void sendMessageQueue(WeektaskMessageDto weektaskMessageDto) throws BizException {
amqpTemplate.convertAndSend(MQQueueConstant.WEEK_TASK, weektaskMessageDto);
/** }
* 发送队列
*/
@Override
public void sendMessageQueue(WeektaskMessageDto weektaskMessageDto) throws BizException {
MessageCreator messageCreator = new MessageCreator() {
@Override
public ObjectMessage createMessage(Session session) throws JMSException {
return session.createObjectMessage(weektaskMessageDto);
}
};
try {
jmsWeekstaskTemplate.send(messageCreator);
} catch (Exception e) {
logger.error("发送失败," + e.getMessage() + "," + weektaskMessageDto, e);
throw BizException.SEND_QUEUE_FAIL;
}
logger.info("发送成功," + weektaskMessageDto);
}
} }
/** /**
* *
*/ */
package com.pcloud.common.core.constant; package com.pcloud.common.core.constant;
/** /**
*
*
* @author:songx * @author:songx
* @date:2017年2月27日,下午4:29:06 * @date:2017年2月27日,下午4:29:06 使用RabbitMQ需要去MqQueueConstant中声明队列名称,枚举的第二个值将不再使用,第一个值正常使用
*
* 使用RabbitMQ需要去MqQueueConstant中声明队列名称,枚举的第二个值将不再使用,第一个值正常使用
* modify by songx at 2018-08-22 * modify by songx at 2018-08-22
*/ */
public enum ConvertEnum { public enum ConvertEnum {
/** /**
* 应用转码 * 应用转码
*/ */
APP("APP", "convert2App"), APP("APP"),
/** /**
* 资源中心转码 * 资源中心转码
*/ */
RESOURCE("RESOURCE", "convert2Resource"), RESOURCE("RESOURCE"),
/** /**
* 报名时的视频转换 * 报名时的视频转换
*/ */
MATCH("MATCH", "convert2Resource"), MATCH("MATCH"),
/** /**
* 资源中心即时转换 * 资源中心即时转换
*/ */
INSTANT_RESOURCE("INSTANT_RESOURCE", "convert2Resource"), INSTANT_RESOURCE("INSTANT_RESOURCE"),
/** /**
* 报名应用 * 报名应用
*/ */
MATCH_APP("MATCH_APP", "convert2MatchApp"), MATCH_APP("MATCH_APP"),
/** /**
* 内容中心 * 内容中心
*/ */
CONTENT("CONTENT", "convert2Content"), CONTENT("CONTENT"),
/** /**
* 内容中心->题库:文件记忆功能 * 内容中心->题库:文件记忆功能
*/ */
PRETEST_FILEMEMORY("PRETEST_FILEMEMORY", "convert2PretestFilememory"), PRETEST_FILEMEMORY("PRETEST_FILEMEMORY"),
/** /**
* 小游戏 * 小游戏
*/ */
RAYSTASK("RAYSTASK", "convert2Raystask"), RAYSTASK("RAYSTASK"),
/** /**
* 圈子应用 * 圈子应用
*/ */
GROUP_APP("GROUP_APP", "convert2GroupApp"), GROUP_APP("GROUP_APP"),
/** /**
* 投票应用 * 投票应用
*/ */
VOTE_APP("VOTE_APP", "convert2VoteApp"), VOTE_APP("VOTE_APP"),
/** /**
* 教育表格应用 * 教育表格应用
*/ */
EF_APP("EF_APP", "convert2EfApp"), EF_APP("EF_APP"),
/** /**
* 测试工具 * 测试工具
*/ */
TEST_APP("TEST_APP", "convert2TestApp"), TEST_APP("TEST_APP"),
/** /**
* 直播工具 * 直播工具
*/ */
LIVE_APP("LIVE_APP", "convert2LiveApp"), LIVE_APP("LIVE_APP"),
/** /**
* 视频课 * 视频课
*/ */
VIDEO_LESSON("VIDEO_LESSON", "convert2VideoLesson"); VIDEO_LESSON("VIDEO_LESSON"),
/** /**
* 值 * 音频课
*/ */
public final String value; AUDIO_LESSON("AUDIO_LESSON"),
/** /**
* 模板名称 * 音频纯听
*/ */
public final String jmsTemplate; AUDIO_LISTEN("AUDIO_LISTEN");
/** /**
* 构造 * 值
* */
* @param value public final String value;
*/
private ConvertEnum(String value, String jmsTemplate) { /**
this.value = value; * 构造
this.jmsTemplate = jmsTemplate; *
} * @param value
*/
private ConvertEnum(String value) {
this.value = value;
}
} }
...@@ -81,6 +81,11 @@ public class MQQueueConstant { ...@@ -81,6 +81,11 @@ public class MQQueueConstant {
public static final String CONVERT_TO_VOTEAPP = "convert2VoteAppQueue"; public static final String CONVERT_TO_VOTEAPP = "convert2VoteAppQueue";
/** /**
* 文件转码结束(音视频)->音频课/纯听
*/
public static final String CONVERT_TO_AUDIOLESSON = "convert2AudioLessonQueue";
/**
* 数据埋点 * 数据埋点
*/ */
public static final String FRONT_EVENT = "frontEventQueue"; public static final String FRONT_EVENT = "frontEventQueue";
......
...@@ -16,34 +16,260 @@ public class MQTopicProducer { ...@@ -16,34 +16,260 @@ public class MQTopicProducer {
*/ */
public static final String FILE_TRANSCODE = "topic.fileTranscode"; public static final String FILE_TRANSCODE = "topic.fileTranscode";
/**
* 报名新增用户
*/
public static final String BM_ADD_USER = "topic.bmAddUser";
/** /**
* 应用新增 * 应用新增
*/ */
public static final String APP_ADD = "topic.appAdd"; public static final String APP_ADD = "topic.appAdd";
/**
* 应用修改
*/
public static final String APP_UPDATE = "topic.appUpdate";
/**
* 应用删除
*/
public static final String APP_DELETE = "topic.appDelete";
/** /**
* 应用删除(新) * 应用删除(新)
*/ */
public static final String APP_DELETE_NEW = "topic.appDeleteNew"; public static final String APP_DELETE_NEW = "topic.appDeleteNew";
/**
* 应用审核
*/
public static final String APP_AUDIT = "topic.appAudit";
/** /**
* 选择默认渠道 * 选择默认渠道
*/ */
public static final String CHOOSE_DEFAULT_CHANNEL = "topic.chooseDefaultChannel"; public static final String CHOOSE_DEFAULT_CHANNEL = "topic.chooseDefaultChannel";
/**
* 删除视频
*/
public static final String DELETE_VIDEO = "topic.deleteVideo";
/**
* 标签修改
*/
public static final String LABEL_UPDATE = "topic.labelUpdate";
/**
* 支付
*/
public static final String PAYMENT = "topic.payment";
/**
* TIP
*/
public static final String TIP = "topic.tip";
/**
* 订单完成
*/
public static final String FINISH_ORDER = "topic.finishOrder";
/**
* 资源修改
*/
public static final String RESOURCE_UPDATE = "topic.resourceUpdate";
/**
* 资源删除
*/
public static final String RESOURCE_DELETE = "topic.resourceDelete";
/**
* 扫码记录
*/
public static final String SCAN_RECORD = "topic.scanRecord";
/**
* 图书删除
*/
public static final String BOOK_DELETE = "topic.bookDelete";
/**
* BOOKTHAW
*/
public static final String BOOK_THAW = "topic.bookThaw";
/**
* TEMPLETAPPCREATE
*/
public static final String TEMPLET_APP_CREATE = "topic.templetAppCreate";
/**
* PERMISSION
*/
public static final String PERMISSION = "topic.permission";
/**
* PROMOTION_EXPIRE
*/
public static final String PROMOTION_EXPIRE = "topic.promotionExpire";
/**
* 商品修改
*/
public static final String PRODUCT_UPDATE = "topic.productUpdate";
/**
* 商品删除
*/
public static final String PRODUCT_DELETE = "topic.productDelete";
/**
* 商品审核
*/
public static final String PRODUCT_AUDIT = "topic.productAudit";
/**
* 商品图片1修改
*/
public static final String PRODUCT_PIC1_UPDATE = "topic.productPic1Update";
/**
* 用户注册
*/
public static final String REGISTER_PARTY = "topic.registerParty";
/**
* 用户修改
*/
public static final String UPDATE_PARTY = "topic.updateParty";
/**
* 问答确认
*/
public static final String QA_ASK = "topic.qaAsk";
/**
* 问答完成
*/
public static final String QA_FINISH = "topic.qaFinish";
/**
* 问答答案
*/
public static final String QA_ANSWER = "topic.qaAnswer";
/**
* 问答取消
*/
public static final String QA_REFUSE = "topic.qaRefuse";
/**
* QR_MESSAGE_UPDATE
*/
public static final String QR_MESSAGE_UPDATE = "topic.qrMessageUpdate";
/**
* GIVE_GIFT
*/
public static final String GIVE_GIFT = "topic.giveGift";
/**
* 修改密码
*/
public static final String UPDATE_PWD = "topic.updatePwd";
/** /**
* topic交换机名称(勿改) * 管理消息
*/ */
public static final String EXCHAGE = "rays.topic"; public static final String MANAGE_MESSAGE = "topic.manageMessage";
/**
* RETURN_4_ADVISER
*/
public static final String RETURN_4_ADVISER = "topic.return4adviser";
/**
* 退款
*/
public static final String REFUND = "topic.refund";
/**
* 退货
*/
public static final String REFUND_PRODUCT = "topic.refundProduct";
/**
* 发货
*/
public static final String SEND_PRODUCT = "topic.sendProduct";
/**
* 确认收货
*/
public static final String CONFIRM_ORDER = "topic.confirmOrder";
/**
* 申请退货
*/
public static final String APPLY_REFUND_PRODUCT = "topic.applyRefundProduct";
/**
* 取消订单
*/
public static final String CANCEL_ORDER = "topic.cancelOrder";
/**
* 模板二维码扫描
*/
public static final String TEMP_QRCODE_SCAN = "topic.tempQrcodeScan";
/**
* 删除二维码
*/
public static final String DELETE_QRCODE = "topic.deleteQrcode";
/**
* 二维码图书修改
*/
public static final String QRCODE_BOOK_UPDATE = "topic.qrcodeBookUpdate";
/**
* 重置
*/
public static final String RECHARGE = "topic.recharge";
/**
* 改变显示状态
*/
public static final String CHANGE_SHOW_STATE = "topic.changeShowState";
/**
* 删除合作出版社
*/
public static final String DELETE_COOPERATIVE_AGENT = "topic.deleteCooperativeAgent";
/**
* TASK_BONUS
*/
public static final String TASK_BONUS = "topic.taskBonus";
/**
* 读者消息
*/
public static final String READER_MESSAGE = "topic.readerMessage";
/**
* 记录用户习惯
*/
public static final String RECORD_USER_HABIT = "topic.recordUserHabit";
/**
* topic交换机名称(勿改)
*/
public static final String EXCHAGE = "rays.topic";
/** /**
* 更新图书封面图 * 更新图书封面图
......
...@@ -208,6 +208,21 @@ public class ProductTypeConstant { ...@@ -208,6 +208,21 @@ public class ProductTypeConstant {
public static final String PRETESTAPP = "PRETESTAPP"; public static final String PRETESTAPP = "PRETESTAPP";
/** /**
* 音频
*/
public static final String AUDIO_RESOURCE = "AUDIO_RESOURCE";
/**
* 问答
*/
public static final String QA_APP = "QA_APP";
/**
* 电子书
*/
public static final String EBOOK_APP = "EBOOK_APP";
/**
* 热门作品类型 * 热门作品类型
*/ */
public static final String[] HOT_PRODUCT_TYPE = {QA, PDF, VIDEO, PRETEST}; public static final String[] HOT_PRODUCT_TYPE = {QA, PDF, VIDEO, PRETEST};
...@@ -233,7 +248,7 @@ public class ProductTypeConstant { ...@@ -233,7 +248,7 @@ public class ProductTypeConstant {
* 应用型作品(伴随应用使用) * 应用型作品(伴随应用使用)
*/ */
public static final String[] APP_PRODUCT = {LOOK, LIVE, TUTOR, GROUP, ZSCORE, VOTE, CLOCK, TEST, AUDIOAPP, ANSWER, public static final String[] APP_PRODUCT = {LOOK, LIVE, TUTOR, GROUP, ZSCORE, VOTE, CLOCK, TEST, AUDIOAPP, ANSWER,
EF, MUSIC, VIDEO_COURSE, PRETESTAPP}; EF, MUSIC, VIDEO_COURSE, PRETESTAPP, AUDIO_RESOURCE, QA_APP, EBOOK_APP};
/** /**
* 数据平台埋点型作品 * 数据平台埋点型作品
......
package com.pcloud.common.core.constant; package com.pcloud.common.core.constant;
/** /**
* 场景值 * 场景值
* @author 作者 : lili * @author 作者 : lili
* @date 创建时间:2016年12月2日 上午9:10:49 * @date 创建时间:2016年12月2日 上午9:10:49
* @version 1.0 * @version 1.0
* @return * @return
*/ */
public enum SceneCode { public enum SceneCode {
/**
* 奖金发放通知
*/
PRIZE_SEND_SCENE("PRIZE_SEND_SCENE"),
/** /**
* 服务完成通知 * 服务完成通知
*/ */
SERVICE_FINISH_SCENE("SERVICE_FINISH_SCENE"), SERVICE_FINISH_SCENE("SERVICE_FINISH_SCENE"),
/** /**
* 新订单通知 * 新订单通知
*/ */
NEW_ORDER_SCENE("NEW_ORDER_SCENE"), NEW_ORDER_SCENE("NEW_ORDER_SCENE"),
/** /**
* 订单支付成功 * 订单支付成功
*/ */
PAY_SUCCESS_SCENE("PAY_SUCCESS_SCENE"), PAY_SUCCESS_SCENE("PAY_SUCCESS_SCENE"),
/** /**
* 报名成功提醒 * 报名成功提醒
*/ */
BM_SUCCESS_SCENE("BM_SUCCESS_SCENE"), BM_SUCCESS_SCENE("BM_SUCCESS_SCENE"),
/** /**
* 商家回复提醒 * 商家回复提醒
*/ */
REPLY_SCENE("REPLY_SCENE"), REPLY_SCENE("REPLY_SCENE"),
/** /**
* 拒绝提醒 * 拒绝提醒
*/ */
REFUSE_SCENE("REFUSE_SCENE"), REFUSE_SCENE("REFUSE_SCENE"),
/** /**
* 用户提问通知 * 用户提问通知
*/ */
USER_QUESTION_SCENE("USER_QUESTION_SCENE"), USER_QUESTION_SCENE("USER_QUESTION_SCENE"),
/**
* 退货申请提醒
*/
REFUND_APPLICATION_SCENE("REFUND_APPLICATION_SCENE"),
/**
* 退货失败通知
*/
REFUND_REFUSE_SCENE("REFUND_REFUSE_SCENE"),
/**
* 退货确认通知
*/
REFUND_CONFIRM_SCENE("REFUND_CONFIRM_SCENE"),
/** /**
* 订单确认收货通知 * 退货完成通知
*/ */
CONFIRM_GOODS_SCENE("CONFIRM_GOODS_SCENE"), REFUND_FINISH_SCENE("REFUND_FINISH_SCENE"),
/** /**
* 退款成功 * 退款成功
*/ */
REFUND_SUCCESS_SCENE("REFUND_SUCCESS_SCENE"), REFUND_SUCCESS_SCENE("REFUND_SUCCESS_SCENE"),
/** /**
* 订单发货提醒 * 订单发货提醒
*/ */
SIPPING_SCENE("SIPPING_SCENE"), SIPPING_SCENE("SIPPING_SCENE"),
/** /**
* 审核结果通知 * 审核结果通知
*/ */
AUDIT_RESULT_SCENE("AUDIT_RESULT_SCENE"), AUDIT_RESULT_SCENE("AUDIT_RESULT_SCENE"),
/** /**
* 任务处理结果提醒 * 任务处理结果提醒
*/ */
TASK_HANDLE_RESULT_SCENE("TASK_HANDLE_RESULT_SCENE"), TASK_HANDLE_RESULT_SCENE("TASK_HANDLE_RESULT_SCENE"),
/** /**
* 订单消息通知 * 订单消息通知
*/ */
ORDER_MESSAGE_SCENE("ORDER_MESSAGE_SCENE"), ORDER_MESSAGE_SCENE("ORDER_MESSAGE_SCENE"),
/** /**
* 退货申请结果通知
*/
REFUND_APPLICATION_RESULT_SCENE("REFUND_APPLICATION_RESULT_SCENE"),
/**
* 确认登录提醒 * 确认登录提醒
*/ */
CONFIRM_LOGIN_SCENE("CONFIRM_LOGIN_SCENE"), CONFIRM_LOGIN_SCENE("CONFIRM_LOGIN_SCENE"),
/**
* 成功报名付费通知
*/
ENROLL_SUCCESS_SCENE("ENROLL_SUCCESS_SCENE"),
/** /**
* 预约提醒 * 预约提醒
*/ */
APPOINT_SCENE("APPOINT_SCENE"), APPOINT_SCENE("APPOINT_SCENE"),
/**
* 排名通知
*/
RANK_SCENE("RANK_SCENE"),
/** /**
* 学习进度提醒 * 学习进度提醒
*/ */
LEARN_PROGRESS_SCENE("LEARN_PROGRESS_SCENE"), LEARN_PROGRESS_SCENE("LEARN_PROGRESS_SCENE"),
/** /**
* 项目任务提醒 * 项目任务提醒
*/ */
...@@ -140,12 +112,8 @@ public enum SceneCode { ...@@ -140,12 +112,8 @@ public enum SceneCode {
/** /**
* 会员到期提醒 * 会员到期提醒
*/ */
MEMBERSHIP_EXPIRE("MEMBERSHIP_EXPIRE"), MEMBERSHIP_EXPIRE("MEMBERSHIP_EXPIRE");
/**
* 奖金发放通知
*/
PRIZE_SEND_SCENE("PRIZE_SEND_SCENE");
/** /**
* 值 * 值
*/ */
...@@ -153,7 +121,7 @@ public enum SceneCode { ...@@ -153,7 +121,7 @@ public enum SceneCode {
/** /**
* 构造 * 构造
* *
* @param value * @param value
*/ */
private SceneCode(String value) { private SceneCode(String value) {
......
...@@ -36,7 +36,18 @@ public enum WeektaskCode { ...@@ -36,7 +36,18 @@ public enum WeektaskCode {
CLICK_VIEW_GAINS("click_view_gains"), CLICK_VIEW_GAINS("click_view_gains"),
//做书应用→创建音频应用→最后一步点击保存 //做书应用→创建音频应用→最后一步点击保存
CLICK_SAVE_AUDIO_APP("click_save_audio_app"), CLICK_SAVE_AUDIO_APP("click_save_audio_app"),
//关联应用到二维码
RELATE_APP_TO_QRCODE("relate_app_to_qrcode"),
//查看案例不少于三个 并且提留时间高于90S
VIEW_SHARE_CASE("view_share_case"),
//点击进入编创大赛
CLICK_NECIS_MATCH("click_necis_match"),
//扫描二维码进入直播课
SCAN_WATCH_LIVEAPP("scan_watch_liveapp"),
//修改书刊信息
UPDATE_BOOK_INFO("update_book_info"),
//调整应用顺序
SET_STEP("set_step"),
/** /**
* -------通用埋点------ * -------通用埋点------
*/ */
...@@ -98,6 +109,36 @@ public enum WeektaskCode { ...@@ -98,6 +109,36 @@ public enum WeektaskCode {
ADD_SUPERMERCHANT_COURSE("add_supermerchant_course"), ADD_SUPERMERCHANT_COURSE("add_supermerchant_course"),
//开始直播 //开始直播
START_LIVE("start_live"), START_LIVE("start_live"),
//新增课程
ADD_TO_TABLE("add_to_table"),
//APP端开始直播
START_LIVEAPP("start_liveapp"),
//互动区发言
SPEAK_LIVEAPP("speak_liveapp"),
//退出直播
END_LIVEAPP("end_liveapp"),
//发布动态
POST_NOTE_APP("post_note_app"),
//发布动态图片动态
POST_PIC_NOTE_AND_TOP("post_pic_note_and_top"),
//建立营销机制
CREATE_MARKETING("create_marketing"),
//配置押题宝典
CONFIG_TREASURE("config_treasure"),
//读者圈发布PDF动态
W_POST_PDF_NOTE("w_post_pdf_note"),
//周任务配置二维码消息
CONFIG_WEEK_QRCODE("config_week_qrcode"),
//发布直播讲义
MODIFY_WORK("modify_work"),
//体验录播模式
EXPERIENCE_VIDEO("experience_video"),
//勾选超级作者作品
ADD_SUPER_COURSE("add_super_course"),
//读者端发布动态
C_PUBLISH_DYNAMIC("c_publish_dynamic"),
//专题问答设置免费
SET_FREE("set_free"),
//----------------------------------成就任务------------------- //----------------------------------成就任务-------------------
/** /**
* 读者在读者圈中发动态 * 读者在读者圈中发动态
...@@ -485,71 +526,131 @@ public enum WeektaskCode { ...@@ -485,71 +526,131 @@ public enum WeektaskCode {
/** /**
* 与读者交互 * 与读者交互
*/ */
W4_GROUP_COMMENT("w4_group_comment"), W5_CREATE_BOOK("w5_create_book"),
/**
* 新增二维码
*/
W5_CREATE_QRCODE("w5_create_qrcode"),
/**
* 创建直播课应用
*/
W5_CREATE_LIVEAPP("w5_create_liveapp"),
/**
* 完成手机直播
*/
W5_FINISH_LIVEAPP("w5_finish_liveapp"),
/**
* 创建读者圈应用
*/
W5_CREATE_GROUP("w5_create_group"),
/**
* 更新读者圈应用
*/
W5_UPDATE_GROUP("w5_update_group"),
/**
* 创建答案应用
*/
W5_CREATE_ANSWER_APP("w5_create_answer_app"),
/**
* 创建视频应用
*/
W5_CREATE_VIDEO_APP("w5_create_video_app"),
/**
* 建立营销机制
*/
W5_CREATE_MARKETING("w5_create_marketing"),
/**
* 打造大IP图书
*/
W5_MAKE_IP_BOOK("w5_make_ip_book"),
/**
* 修改书刊信息
*/
W5_UPDATE_BOOK_INFO("w5_update_book_info"),
/**
* 创建音频应用
*/
W5_CREATE_AUDIO_APP("w5_create_audio_app"),
/**
* 创建打卡应用
*/
W5_CREATE_CLOCK_APP("w5_create_clock_app"),
/**
* 创建精品文章应用
*/
W5_CREATE_ARTICLE_APP("w5_create_article_app"),
/**
* 创建趣味测试应用
*/
W5_CREATE_TASTETEST_APP("w5_create_tastetest_app"),
/**
* 调整应用呈现顺序
*/
W5_SORT_APP("w5_sort_app"),
/** /**
* 回复图文资讯评论 * 查看纸书数据
*/ */
W4_ARTICLE_REPLY("w4_article_reply"), W5_VIEW_BOOK_DATA("w5_view_book_data"),
/** /**
* 完善纸书问答合集 * 创建视频应用并关联书刊
*/ */
W4_CREATE_QA("w4_create_qa"), W5_CREATE_VIDEO_APP_AND_RELATE("w5_create_video_app_and_relate"),
/** /**
* 建立衍生文本 * 更新PDF应用并发布到读者圈
*/ */
W4_UPLOAD_PDF("w4_upload_pdf"), W5_UPDATE_GROUP_BY_PDF("w5_update_group_by_pdf"),
/** /**
* 创建视听内容 * 创建愿望单应用
*/ */
W4_UPLOAD_VIDEO("w4_upload_video"), W5_CREATE_WISHLIST_APP("w5_create_wishlist_app"),
/** /**
* 让读者听见纸书 * 创建专题问答应用
*/ */
W4_UPLOAD_AUDIO("w4_upload_audio"), W5_CREATE_EF_APP("w5_create_ef_app"),
/** /**
* 配套纸书插画图解 * 更新读者交流圈动态2
*/ */
W4_UPLOAD_PIC("w4_upload_pic"), W5_CREATE_GROUP_FOR_PDF("w5_update_group_for_pdf"),
/** /**
* 呈现纸书全方位资讯 * 配置二维码消息
*/ */
W4_CREATE_SPECIAL("w4_create_special"), W5_CONFIG_QRCODE("w5_config_qrcode"),
/** /**
* 秀出红榜任务排行 *发布直播讲义
*/ */
W4_SHARE_REPORT("w4_share_report"), W5_PUBLISH_LECTURE("w5_publish_lecture"),
/** /**
* app发布语音动态 *体验录播模式
*/ */
W4_GROUP_VOICE_POST("w4_group_voice_post"), W5_EXPERIENCE_VIDEO("w5_experience_video"),
/** /**
* 掌握纸书使用高峰 *审核动态
*/ */
W4_VIEW_BOOK_TIDE("w4_view_book_tide"), W5_AUDIT_DYNAM("w5_audit_dynam"),
/** /**
* 二维码数据分析 *新建直播课应用
*/ */
W4_VIEW_QRCODE_TIDE("w4_view_qrcode_tide"), W5_CREATE_SUPER_LIVEAPP("w5_create_super_liveapp"),
/** /**
* 了解纸书数据 *新建延伸阅读应用
*/ */
W4_VIEW_ANALYSIS("w4_view_analysis"), W5_CREATE_PDF("w5_create_pdf"),
/** /**
* 查看纸书收益 *新建在线题库应用
*/ */
W4_VIEW_GAINS("w4_view_gains"), W5_CREATE_QUESTION_BANK("w5_create_question_bank"),
/** /**
* 建立基于纸书内容的题库 *标准服务预览
*/ */
W4_UPLOAD_ITEM_BANK("w4_upload_item_bank"), W5_VIEW_GUIDE("w5_view_guide"),
/** /**
* 纸书内容读者自测 *创建投票应用
*/ */
W4_CREATE_ITEM_BANK("w4_create_item_bank"), W5_CREATE_VOTE_APP("w5_create_vote_app"),
/** /**
* 本周直播课 *创建抽奖应用
*/ */
W4_BEGIN_LIVE("w4_begin_live"), W5_CREATE_DRAW_APP("w5_create_draw_app"),
; ;
public final String code; public final String code;
......
package com.pcloud.common.core.dao; package com.pcloud.common.core.dao;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSession;
import org.mybatis.spring.SqlSessionTemplate; import org.mybatis.spring.SqlSessionTemplate;
import com.pcloud.common.page.PageBean; import com.pcloud.common.page.PageBean;
import com.pcloud.common.page.PageBeanNew; import com.pcloud.common.page.PageBeanNew;
import com.pcloud.common.page.PageParam; import com.pcloud.common.page.PageParam;
/** /**
* @描述:数据访问层基础支撑接口. @作者:DiSeng.H * @描述:数据访问层基础支撑接口. @作者:DiSeng.H
* @创建时间:2016年3月11日,下午4:02:32 @版本:1.0 * @创建时间:2016年3月11日,下午4:02:32 @版本:1.0
*/ */
public interface BaseDao<T> { public interface BaseDao<T> {
/** /**
* 根据实体对象新增记录. * 根据实体对象新增记录.
* *
* @param entity * @param entity .
* . * @return id .
* @return id . */
*/ long insert(T entity);
long insert(T entity);
/**
/** * 批量保存对象.
* 批量保存对象. *
* * @param entity .
* @param entity * @return id .
* . */
* @return id . long insert(List<T> list);
*/
long insert(List<T> list); /**
* 更新实体对应的记录.
/** *
* 更新实体对应的记录. * @param entity .
* * @return
* @param entity */
* . long update(T entity);
* @return
*/ /**
long update(T entity); * 更新实体对应的记录.
*
/** * @param entity
* 更新实体对应的记录. * @param sqlId
* * @return
* @param entity */
* @param sqlId long update(T entity, String sqlId);
* @return
*/ /**
long update(T entity, String sqlId); * 更新实体对应的记录.
*
/** * @param entity
* 批量更新对象. * @param sqlId
* * @param errorMessage 错误消息
* @param entity * @return
* . */
* @return int . long update(T entity, String sqlId, String errorMessage);
*/
long update(List<T> list); /**
* 批量更新对象.
/** *
* 根据ID查找记录. * @param entity .
* * @return int .
* @param id */
* . long update(List<T> list);
* @return entity .
*/ /**
T getById(long id); * 根据ID查找记录.
*
/** * @param id .
* 根据ID删除记录. * @return entity .
* */
* @param id T getById(long id);
* .
* @return /**
*/ * 根据ID删除记录.
long deleteById(long id); *
* @param id .
/** * @return
* 分页查询 . */
* long deleteById(long id);
* @param pageParam
* 分页参数. /**
* @param paramMap * 分页查询 .
* 业务条件查询参数. *
* @return * @param pageParam 分页参数.
*/ * @param paramMap 业务条件查询参数.
PageBean listPage(PageParam pageParam, Map<String, Object> paramMap); * @return
*/
PageBean listSimplePage(PageParam pageParam, Map<String, Object> paramMap, String sqlId); PageBean listPage(PageParam pageParam, Map<String, Object> paramMap);
PageBean listPage(PageParam pageParam, Map<String, Object> paramMap, String sqlId); PageBean listSimplePage(PageParam pageParam, Map<String, Object> paramMap, String sqlId);
<C> PageBeanNew<C> listPageNew(PageParam pageParam, Map<String, Object> paramMap, String sqlId); PageBean listPage(PageParam pageParam, Map<String, Object> paramMap, String sqlId);
PageBean listPage(PageParam pageParam, Map<String, Object> paramMap, String sqlId, String countSqlId); <C> PageBeanNew<C> listPageNew(PageParam pageParam, Map<String, Object> paramMap, String sqlId);
/** PageBean listPage(PageParam pageParam, Map<String, Object> paramMap, String sqlId, String countSqlId);
* 根据条件查询 listBy: <br/>
* /**
* @param paramMap * 根据条件查询 listBy: <br/>
* @return 返回集合 *
*/ * @param paramMap
List<T> listBy(Map<String, Object> paramMap); * @return 返回集合
*/
List<Object> listBy(Map<String, Object> paramMap, String sqlId); List<T> listBy(Map<String, Object> paramMap);
/** List<Object> listBy(Map<String, Object> paramMap, String sqlId);
* 根据条件查询 listBy: <br/>
* /**
* @param paramMap * 根据条件查询 listBy: <br/>
* @return 返回实体 *
*/ * @param paramMap
T getBy(Map<String, Object> paramMap); * @return 返回实体
*/
Object getBy(Map<String, Object> paramMap, String sqlId); T getBy(Map<String, Object> paramMap);
/** Object getBy(Map<String, Object> paramMap, String sqlId);
* 根据序列名称获取下一个值
* /**
* @return * 根据序列名称获取下一个值
*/ *
String getSeqNextValue(String seqName); * @return
*/
SqlSessionTemplate getSessionTemplate(); String getSeqNextValue(String seqName);
SqlSession getSqlSession(); SqlSessionTemplate getSessionTemplate();
}
SqlSession getSqlSession();
}
...@@ -94,6 +94,18 @@ public class SendNotifyDto implements Serializable{ ...@@ -94,6 +94,18 @@ public class SendNotifyDto implements Serializable{
*/ */
private String jsonString; private String jsonString;
/**
* 来源ID
* @return
*/
private String originId;
/**
* 来源类型
* @return
*/
private String originType;
public Long getFromId() { public Long getFromId() {
return fromId; return fromId;
} }
...@@ -222,6 +234,26 @@ public class SendNotifyDto implements Serializable{ ...@@ -222,6 +234,26 @@ public class SendNotifyDto implements Serializable{
this.jsonString = jsonString; this.jsonString = jsonString;
} }
public static long getSerialVersionUID() {
return serialVersionUID;
}
public String getOriginType() {
return originType;
}
public void setOriginType(String originType) {
this.originType = originType;
}
public String getOriginId() {
return originId;
}
public void setOriginId(String originId) {
this.originId = originId;
}
@Override @Override
public String toString() { public String toString() {
return "SendNotifyDto{" + return "SendNotifyDto{" +
...@@ -244,6 +276,8 @@ public class SendNotifyDto implements Serializable{ ...@@ -244,6 +276,8 @@ public class SendNotifyDto implements Serializable{
", pic='" + pic + '\'' + ", pic='" + pic + '\'' +
", frquency=" + frquency + ", frquency=" + frquency +
", jsonString='" + jsonString + '\'' + ", jsonString='" + jsonString + '\'' +
", originId='" + originId + '\'' +
", originType='" + originType + '\'' +
'}'; '}';
} }
} }
package com.pcloud.common.core.dto; package com.pcloud.common.core.dto;
import java.io.Serializable; import java.io.Serializable;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
/** /**
* 模板消息dto * 模板消息dto
* @author 作者 : lili *
* @date 创建时间:2016年11月17日 下午12:03:48 * @author 作者 : lili
* @version 1.0 * @version 1.0
* @return * @date 创建时间:2016年11月17日 下午12:03:48
*/ * @return
public class TemplateMessageDto implements Serializable { */
public class TemplateMessageDto implements Serializable {
/**
* /**
*/ *
private static final long serialVersionUID = -4132417523244980195L; */
private static final long serialVersionUID = -4132417523244980195L;
/**
* 场景编码值 /**
*/ * 场景编码值
private String sceneCode; */
private String sceneCode;
/**
* 接收消息的当事人ID /**
*/ * 接收消息的当事人ID
private Long receivePartyId; */
private Long receivePartyId;
/**
* 成员账号接收人 /**
*/ * 成员账号接收人
private List<Long> receiveMemberPartyIds; */
private List<Long> receiveMemberPartyIds;
/**
* 接收消息角色(CHANNEL/AGENT/MERCHANT/ADVISER) /**
*/ * 接收消息角色(CHANNEL/AGENT/MERCHANT/ADVISER)
private String receivePartyRole; */
private String receivePartyRole;
/**
* 公众号所属当事人ID /**
*/ * 公众号所属当事人ID
private Long sendPartyId; */
private Long sendPartyId;
/**
* 公众号所属当事人角色(CHANNEL/AGENT) /**
*/ * 公众号所属当事人角色(CHANNEL/AGENT)
private String sendPartyRole; */
private String sendPartyRole;
/**
* 微信用户 /**
*/ * 微信用户
private Long wechatUserId; */
private Long wechatUserId;
/**
* openId /**
*/ * openId
private String openId; */
private String openId;
/**
* 昵称 /**
*/ * 昵称
private String nickName; */
private String nickName;
/**
* url /**
*/ * url
private String url; */
private String url;
/**
* 参数 /**
*/ * 参数
private Map<String, String> temParam; */
private Map<String, String> temParam;
/**
* 发送类型(0: 通过wechatUserId 1 :通过openId 及昵称 2.通过当事人标识) /**
*/ * 发送类型(0: 通过wechatUserId 1 :通过openId 及昵称 2.通过当事人标识)
private String sendType; */
private String sendType;
/**
* 公众号标识 /**
*/ * 公众号标识
private Long accountSettingId; */
private Long accountSettingId;
/**
* 是否为应用 /**
*/ * 是否为应用
private Boolean isApp; */
private Boolean isApp;
/**
* 应用类型 /**
*/ * 应用类型
private String appType; */
private String appType;
public Long getAccountSettingId() { /**
return accountSettingId; * 消息来源分类
} */
private String fromCategory;
public void setAccountSettingId(Long accountSettingId) {
this.accountSettingId = accountSettingId; public String getFromCategory() {
} return fromCategory;
}
public String getSceneCode() {
return sceneCode; public void setFromCategory(String fromCategory) {
} this.fromCategory = fromCategory;
}
public void setSceneCode(String sceneCode) {
this.sceneCode = sceneCode; public Long getAccountSettingId() {
} return accountSettingId;
}
public Long getWechatUserId() {
return wechatUserId; public void setAccountSettingId(Long accountSettingId) {
} this.accountSettingId = accountSettingId;
}
public void setWechatUserId(Long wechatUserId) {
this.wechatUserId = wechatUserId; public String getSceneCode() {
} return sceneCode;
}
public String getUrl() {
return url; public void setSceneCode(String sceneCode) {
} this.sceneCode = sceneCode;
}
public void setUrl(String url) {
this.url = url; public Long getWechatUserId() {
} return wechatUserId;
}
public Map<String, String> getTemParam() {
return temParam; public void setWechatUserId(Long wechatUserId) {
} this.wechatUserId = wechatUserId;
}
public void setTemParam(Map<String, String> temParam) {
this.temParam = temParam; public String getUrl() {
} return url;
}
public String getOpenId() {
return openId; public void setUrl(String url) {
} this.url = url;
}
public void setOpenId(String openId) {
this.openId = openId; public Map<String, String> getTemParam() {
} return temParam;
}
public String getSendType() {
return sendType; public void setTemParam(Map<String, String> temParam) {
} this.temParam = temParam;
}
public void setSendType(String sendType) {
this.sendType = sendType; public String getOpenId() {
} return openId;
}
public Long getReceivePartyId() {
return receivePartyId; public void setOpenId(String openId) {
} this.openId = openId;
}
public void setReceivePartyId(Long receivePartyId) {
this.receivePartyId = receivePartyId; public String getSendType() {
} return sendType;
}
public String getReceivePartyRole() {
return receivePartyRole; public void setSendType(String sendType) {
} this.sendType = sendType;
}
public void setReceivePartyRole(String receivePartyRole) {
this.receivePartyRole = receivePartyRole; public Long getReceivePartyId() {
} return receivePartyId;
}
public Long getSendPartyId() {
return sendPartyId; public void setReceivePartyId(Long receivePartyId) {
} this.receivePartyId = receivePartyId;
}
public void setSendPartyId(Long sendPartyId) {
this.sendPartyId = sendPartyId; public String getReceivePartyRole() {
} return receivePartyRole;
}
public String getSendPartyRole() {
return sendPartyRole; public void setReceivePartyRole(String receivePartyRole) {
} this.receivePartyRole = receivePartyRole;
}
public void setSendPartyRole(String sendPartyRole) {
this.sendPartyRole = sendPartyRole; public Long getSendPartyId() {
} return sendPartyId;
}
public String getNickName() {
return nickName; public void setSendPartyId(Long sendPartyId) {
} this.sendPartyId = sendPartyId;
}
public void setNickName(String nickName) {
this.nickName = nickName; public String getSendPartyRole() {
} return sendPartyRole;
}
public Boolean getIsApp() {
return isApp; public void setSendPartyRole(String sendPartyRole) {
} this.sendPartyRole = sendPartyRole;
}
public void setIsApp(Boolean isApp) {
this.isApp = isApp; public String getNickName() {
} return nickName;
}
public String getAppType() {
return appType; public void setNickName(String nickName) {
} this.nickName = nickName;
}
public void setAppType(String appType) {
this.appType = appType; public Boolean getIsApp() {
} return isApp;
}
public List<Long> getReceiveMemberPartyIds() {
return receiveMemberPartyIds; public void setIsApp(Boolean isApp) {
} this.isApp = isApp;
}
public void setReceiveMemberPartyIds(List<Long> receiveMemberPartyIds) {
this.receiveMemberPartyIds = receiveMemberPartyIds; public String getAppType() {
} return appType;
}
@Override
public String toString() { public void setAppType(String appType) {
return "TemplateMessageDto [sceneCode=" + sceneCode + ", receivePartyId=" + receivePartyId this.appType = appType;
+ ", receiveMemberPartyIds=" + receiveMemberPartyIds + ", receivePartyRole=" + receivePartyRole }
+ ", sendPartyId=" + sendPartyId + ", sendPartyRole=" + sendPartyRole + ", wechatUserId=" + wechatUserId
+ ", openId=" + openId + ", nickName=" + nickName + ", url=" + url + ", temParam=" + temParam public List<Long> getReceiveMemberPartyIds() {
+ ", sendType=" + sendType + ", accountSettingId=" + accountSettingId + ", isApp=" + isApp return receiveMemberPartyIds;
+ ", appType=" + appType + "]"; }
}
public void setReceiveMemberPartyIds(List<Long> receiveMemberPartyIds) {
} this.receiveMemberPartyIds = receiveMemberPartyIds;
}
@Override
public String toString() {
return "TemplateMessageDto [sceneCode=" + sceneCode + ", receivePartyId=" + receivePartyId
+ ", receiveMemberPartyIds=" + receiveMemberPartyIds + ", receivePartyRole=" + receivePartyRole
+ ", sendPartyId=" + sendPartyId + ", sendPartyRole=" + sendPartyRole + ", wechatUserId=" + wechatUserId
+ ", openId=" + openId + ", nickName=" + nickName + ", url=" + url + ", temParam=" + temParam
+ ", sendType=" + sendType + ", accountSettingId=" + accountSettingId + ", isApp=" + isApp
+ ", appType=" + appType + "]";
}
}
...@@ -41,8 +41,11 @@ public enum AppTypeEnum { ...@@ -41,8 +41,11 @@ public enum AppTypeEnum {
ZSCORE("ZSCORE"), // 标准分 ZSCORE("ZSCORE"), // 标准分
RECITE_WORD("RECITE_WORD"), // 背单词 RECITE_WORD("RECITE_WORD"), // 背单词
INTERACT("INTERACT"), // 互动墙 INTERACT("INTERACT"), // 互动墙
SPECIAL("SPECIAL"); // 专题 SPECIAL("SPECIAL"), // 专题
LIVEAPP("LIVEAPP"), //直播3.0
CLOCK("CLOCK"), //打卡
TASTETEST("TASTETEST"), //趣味测试
VIDEO_CLASSIC("VIDEO_CLASSIC"); //经典版视频
/** /**
* 值 * 值
*/ */
......
package com.pcloud.common.core.enums;
/**
* Description 站内信中originType枚举类
* @author HZK
* @date 2018/10/18
*/
public enum NotifyOriginTypeEnum {
/**
* 应用ID
*/
APP("APP"),
/**
* 作品ID
*/
PRODUCT("PRODUCT"),
/**
* 订单
*/
ORDERNUM("ORDERNUM");
/**
* 值
*/
public final String value;
/**
* 构造
* @param value
*/
NotifyOriginTypeEnum(String value) {
this.value = value;
}
}
package com.pcloud.common.core.mq;
import org.apache.activemq.ActiveMQConnectionFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
import org.springframework.jms.connection.CachingConnectionFactory;
import org.springframework.jms.connection.SingleConnectionFactory;
/**
* @描述:
* @作者:songx
* @创建时间:2017年9月14日,上午10:48:02
* @版本:1.0
*/
@Configuration
@PropertySource(value = "classpath:public_system.properties")
public class ActiveMqFactory {
/**
*
*/
private static final Logger LOGGER = LoggerFactory.getLogger(ActiveMqFactory.class);
@Value("${mq.brokerURL}")
private String brokerURL;
/**
* 初始化Mq连接
*
* @return
*/
@Bean(name = "connectionFactory")
public ActiveMQConnectionFactory getMqConnection() {
LOGGER.info("【ActiveMq】初始化MQ链接.<START>");
ActiveMQConnectionFactory mqConnection = new ActiveMQConnectionFactory();
mqConnection.setBrokerURL(brokerURL);
mqConnection.setTrustAllPackages(true);
return mqConnection;
}
/**
* 初始化JMS连接池
*
* @return
*/
@Autowired
@Bean("cachingConnectionFactory")
public CachingConnectionFactory getCachingConnectionFactory(ActiveMQConnectionFactory connectionFactory) {
CachingConnectionFactory cachingConnectionFactory = new CachingConnectionFactory(connectionFactory);
cachingConnectionFactory.setReconnectOnException(true);
cachingConnectionFactory.setCacheConsumers(false);
cachingConnectionFactory.setCacheProducers(false);
cachingConnectionFactory.setSessionCacheSize(50);
return cachingConnectionFactory;
}
/**
* Spring用于管理真正的ConnectionFactory的ConnectionFactory
*
* @return
*/
@Autowired
@Bean(name = "singleConnectionFactory")
public SingleConnectionFactory getSingleConnection(CachingConnectionFactory cachingConnectionFactory) {
LOGGER.info("【ActiveMq】初始化spring管理JMS链接.<START>");
SingleConnectionFactory singleConnection = new SingleConnectionFactory();
singleConnection.setTargetConnectionFactory(cachingConnectionFactory);
return singleConnection;
}
}
package com.pcloud.common.core.mq;
import org.apache.activemq.command.ActiveMQQueue;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.jms.connection.CachingConnectionFactory;
import org.springframework.jms.core.JmsTemplate;
/**
* @描述:
*
* @作者:songx
* @创建时间:2017年9月14日,上午11:40:25 @版本:1.0
*/
@Configuration
public class ActiveMqProducer {
@Autowired
private CachingConnectionFactory cachingConnectionFactory;
@Autowired(required = false)
@Qualifier("convertQueue")
private ActiveMQQueue convertQueue;
@Autowired(required = false)
@Qualifier("labelUsedQueue")
private ActiveMQQueue labelUsedQueue;
@Autowired(required = false)
@Qualifier("logQueue")
private ActiveMQQueue logQueue;
@Autowired(required = false)
@Qualifier("messageQueue")
private ActiveMQQueue messageQueue;
@Autowired(required = false)
@Qualifier("weektaskQueue")
private ActiveMQQueue weektaskQueue;
@Autowired(required = false)
@Qualifier("templateQueue")
private ActiveMQQueue templateQueue;
@Autowired(required = false)
@Qualifier("userActionQueue")
private ActiveMQQueue userActionQueue;
@Autowired(required = false)
@Qualifier("funnelFlowQueue")
private ActiveMQQueue funnelFlowQueue;
@Autowired(required = false)
@Qualifier("fundQueue")
private ActiveMQQueue fundQueue;
@Autowired(required = false)
@Qualifier("dynamicQueue")
private ActiveMQQueue dynamicQueue;
@Autowired(required = false)
@Qualifier("exapiQueue")
private ActiveMQQueue exapiQueue;
@Autowired(required = false)
@Qualifier("frontEventQueue")
private ActiveMQQueue frontEventQueue;
@Autowired(required = false)
@Qualifier("transcodeQueue")
private ActiveMQQueue transcodeQueue;
@Autowired(required = false)
@Qualifier("promotionTaskQueue")
private ActiveMQQueue promotionTaskQueue;
@Autowired(required = false)
@Qualifier("promotionTerminateQueue")
private ActiveMQQueue promotionTerminateQueue;
/**
* 获取音视频转码JMS
*
* @return
*/
@Bean(name = "jmsConvertTemplate")
public JmsTemplate getConvertTemplate() {
JmsTemplate jmsTemplate = getJmsTemplate();
jmsTemplate.setDefaultDestination(convertQueue);
return jmsTemplate;
}
/**
* 获取标签使用JMS
*
* @return
*/
@Bean(name = "jmsLabelUsedTemplate")
public JmsTemplate getLabelUsedTemplate() {
JmsTemplate jmsTemplate = getJmsTemplate();
jmsTemplate.setDefaultDestination(labelUsedQueue);
return jmsTemplate;
}
/**
* 获取日志JMS
*
* @return
*/
@Bean(name = "jmsLogTemplate")
public JmsTemplate getLogTemplate() {
JmsTemplate jmsTemplate = getJmsTemplate();
jmsTemplate.setDefaultDestination(logQueue);
return jmsTemplate;
}
/**
* 获取消息JMS
*
* @return
*/
@Bean(name = "jmsMessageTemplate")
public JmsTemplate getMessageTemplate() {
JmsTemplate jmsTemplate = getJmsTemplate();
jmsTemplate.setDefaultDestination(messageQueue);
return jmsTemplate;
}
/**
* 获取编辑任务JMS
*
* @return
*/
@Bean(name = "jmsWeektaskTemplate")
public JmsTemplate getWeektaskTemplate() {
JmsTemplate jmsTemplate = getJmsTemplate();
jmsTemplate.setDefaultDestination(weektaskQueue);
return jmsTemplate;
}
/**
* 获取模板消息JMS
*
* @return
*/
@Bean(name = "jmsTemplateTemplate")
public JmsTemplate getTemplateTemplate() {
JmsTemplate jmsTemplate = getJmsTemplate();
jmsTemplate.setDefaultDestination(templateQueue);
return jmsTemplate;
}
/**
* 获取用户行为JMS
*
* @return
*/
@Bean(name = "jmsUserActionTemplate")
public JmsTemplate getUserActionTemplate() {
JmsTemplate jmsTemplate = getJmsTemplate();
jmsTemplate.setDefaultDestination(userActionQueue);
return jmsTemplate;
}
/**
* 获取漏斗流程JMS
*
* @return
*/
@Bean(name = "jmsFunnelFlowTemplate")
public JmsTemplate getFunnelFlowTemplate() {
JmsTemplate jmsTemplate = getJmsTemplate();
jmsTemplate.setDefaultDestination(funnelFlowQueue);
return jmsTemplate;
}
/**
* 基金修改监控JMS
*
* @return
*/
@Bean(name = "jmsFundTemplate")
public JmsTemplate getJmsFundTemplate() {
JmsTemplate jmsTemplate = getJmsTemplate();
jmsTemplate.setDefaultDestination(fundQueue);
return jmsTemplate;
}
/**
* 作者动态监控JMS
*
* @return
*/
@Bean(name = "jmsDynamicTemplate")
public JmsTemplate getJmsDynamicTemplate() {
JmsTemplate jmsTemplate = getJmsTemplate();
jmsTemplate.setDefaultDestination(dynamicQueue);
return jmsTemplate;
}
/**
* 收集事件
*
* @return
*/
@Bean(name = "jmsFrontEventTemplate")
public JmsTemplate getJmsFrontEventTemplate() {
JmsTemplate jmsTemplate = getJmsTemplate();
jmsTemplate.setDefaultDestination(frontEventQueue);
return jmsTemplate;
}
/**
* 对外api监控JMS
*
* @author wangrui
* @date 10:40 2018/4/13
*/
@Bean(name = "jmsExapiTemplate")
public JmsTemplate getJmsExapiTemplate() {
JmsTemplate jmsTemplate = getJmsTemplate();
jmsTemplate.setDefaultDestination(exapiQueue);
return jmsTemplate;
}
/**
* 文件转码JMS
*
* @return
*/
@Bean(name = "jmsTranscodeTemplate")
public JmsTemplate getJmsTranscodeTemplate() {
JmsTemplate jmsTemplate = getJmsTemplate();
jmsTemplate.setDefaultDestination(transcodeQueue);
return jmsTemplate;
}
/**
* 获取促销任务JMS
*
* @return
*/
@Bean(name = "jmsPromotionTaskTemplate")
public JmsTemplate getJmsPromotionTaskTemplate() {
JmsTemplate jmsTemplate = getJmsTemplate();
jmsTemplate.setDefaultDestination(promotionTaskQueue);
return jmsTemplate;
}
/**
* 获取促销终止JMS
*
* @return
*/
@Bean(name = "jmsPromotionTerminateTemplate")
public JmsTemplate getJmsPromotionTerminateTemplate() {
JmsTemplate jmsTemplate = getJmsTemplate();
jmsTemplate.setDefaultDestination(promotionTerminateQueue);
return jmsTemplate;
}
/**
* 获取JMS模板
*
* @return
*/
private JmsTemplate getJmsTemplate() {
JmsTemplate jmsTemplate = new JmsTemplate(cachingConnectionFactory);
jmsTemplate.setReceiveTimeout(10000);
return jmsTemplate;
}
}
package com.pcloud.common.core.mq;
import org.apache.activemq.command.ActiveMQQueue;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import com.pcloud.common.core.enums.MqQueueEnum;
/**
*
* @描述:
*
* @作者:songx
* @创建时间:2017年11月14日,上午10:59:55 @版本:1.0
*/
@Configuration
public class ActiveMqQueue {
/**
* 音视频转换消息队列
*
* @return
*/
@Bean(name = "convertQueue")
public ActiveMQQueue getConvertQueue() {
return new ActiveMQQueue("convert");
}
/**
* 标签使用量消息队列
*
* @return
*/
@Bean(name = "labelUsedQueue")
public ActiveMQQueue getLabelUsedQueue() {
return new ActiveMQQueue("labelUsed");
}
/**
* 日志消息队列
*
* @return
*/
@Bean(name = "logQueue")
public ActiveMQQueue getLogQueue() {
return new ActiveMQQueue("log");
}
/**
* 系统消息消息队列
*
* @return
*/
@Bean(name = "messageQueue")
public ActiveMQQueue getMessageQueue() {
return new ActiveMQQueue("message");
}
/**
* 周任务消息队列
*
* @return
*/
@Bean(name = "weektaskQueue")
public ActiveMQQueue getWeektaskQueue() {
return new ActiveMQQueue("weektask");
}
/**
* 模板消息消息队列
*
* @return
*/
@Bean(name = "templateQueue")
public ActiveMQQueue getTemplateQueue() {
return new ActiveMQQueue("template");
}
/**
* 用户行为消息队列
*
* @return
*/
@Bean(name = "userActionQueue")
public ActiveMQQueue getUserActionQueue() {
return new ActiveMQQueue("userAction");
}
/**
* 用户漏斗流程队列
*
* @return
*/
@Bean(name = "funnelFlowQueue")
public ActiveMQQueue getFunnelFlowQueue() {
return new ActiveMQQueue("funnelFlow");
}
/**
* 基金监控消息队列
*
* @return
*/
@Bean(name = "fundQueue")
public ActiveMQQueue getFundQueue() {
return new ActiveMQQueue("fund");
}
/**
* 动态监控消息队列
*
* @return
*/
@Bean(name = "dynamicQueue")
public ActiveMQQueue getDynamicQueue() {
return new ActiveMQQueue("merchantDynamic");
}
/**
* 事件分析埋点
*
* @return
*/
@Bean(name = "frontEventQueue")
public ActiveMQQueue getFrontEventQueue() {
return new ActiveMQQueue("frontEvent");
}
/**
* 对外api队列
*
* @author wangrui
* @date 10:28 2018/4/13
*/
@Bean(name = "exapiQueue")
public ActiveMQQueue getExapiQueue() {
return new ActiveMQQueue("exapi");
}
/**
* 文件转码(非音视频转码)
*
* @return
*/
@Bean(name = "transcodeQueue")
public ActiveMQQueue getTranscodeQueue() {
return new ActiveMQQueue(MqQueueEnum.TRANSCODE.queueName);
}
/**
* 促销任务
*
* @return
*/
@Bean(name = "promotionTaskQueue")
public ActiveMQQueue getPromotionTaskQueue() {
return new ActiveMQQueue("promotionTask");
}
/**
* 促销终止
*
* @return
*/
@Bean(name = "promotionTerminateQueue")
public ActiveMQQueue getPromotionTerminateQueue() {
return new ActiveMQQueue("promotionTerminate");
}
}
...@@ -53,6 +53,22 @@ ...@@ -53,6 +53,22 @@
<artifactId>spring-cloud-starter-feign</artifactId> <artifactId>spring-cloud-starter-feign</artifactId>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-ribbon</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-turbine</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-hystrix</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-hystrix-dashboard</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.retry</groupId> <groupId>org.springframework.retry</groupId>
<artifactId>spring-retry</artifactId> <artifactId>spring-retry</artifactId>
</dependency> </dependency>
...@@ -82,14 +98,6 @@ ...@@ -82,14 +98,6 @@
<groupId>org.springframework.cloud</groupId> <groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-sleuth</artifactId> <artifactId>spring-cloud-starter-sleuth</artifactId>
</dependency> </dependency>
<!--<dependency> -->
<!--<groupId>org.springframework.cloud</groupId> -->
<!--<artifactId>spring-cloud-starter-hystrix</artifactId> -->
<!--</dependency> -->
<!--<dependency> -->
<!--<groupId>org.springframework.cloud</groupId> -->
<!--<artifactId>spring-cloud-starter-hystrix-dashboard</artifactId> -->
<!--</dependency> -->
<dependency> <dependency>
<groupId>org.springframework.cloud</groupId> <groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-stream-rabbit</artifactId> <artifactId>spring-cloud-starter-stream-rabbit</artifactId>
...@@ -147,6 +155,12 @@ ...@@ -147,6 +155,12 @@
<groupId>commons-io</groupId> <groupId>commons-io</groupId>
<artifactId>commons-io</artifactId> <artifactId>commons-io</artifactId>
</dependency> </dependency>
<dependency>
<groupId>com.squareup.okhttp3</groupId>
<artifactId>okhttp</artifactId>
</dependency>
<dependency> <dependency>
<groupId>commons-codec</groupId> <groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId> <artifactId>commons-codec</artifactId>
...@@ -189,6 +203,13 @@ ...@@ -189,6 +203,13 @@
</dependency> </dependency>
<!-- sftp end --> <!-- sftp end -->
<!-- google Begin -->
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
</dependency>
<!-- google End -->
<!-- ftp begin --> <!-- ftp begin -->
<dependency> <dependency>
<groupId>commons-net</groupId> <groupId>commons-net</groupId>
...@@ -227,12 +248,6 @@ ...@@ -227,12 +248,6 @@
<artifactId>freemarker</artifactId> <artifactId>freemarker</artifactId>
</dependency> </dependency>
<!-- PDF解析工具 -->
<dependency>
<groupId>pcloud.tools</groupId>
<artifactId>tools</artifactId>
</dependency>
<!-- 图片处理工具 added by songx at 2017-05-17 --> <!-- 图片处理工具 added by songx at 2017-05-17 -->
<dependency> <dependency>
<groupId>net.coobird</groupId> <groupId>net.coobird</groupId>
...@@ -283,12 +298,6 @@ ...@@ -283,12 +298,6 @@
</dependency> </dependency>
<!-- end --> <!-- end -->
<!-- google 工具包 -->
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
</dependency>
<!-- Jackson Begin --> <!-- Jackson Begin -->
<dependency> <dependency>
<groupId>org.codehaus.jackson</groupId> <groupId>org.codehaus.jackson</groupId>
...@@ -364,12 +373,7 @@ ...@@ -364,12 +373,7 @@
<version>1.5.2</version> <version>1.5.2</version>
</dependency> </dependency>
<!--PDF转图片 -->
<dependency>
<groupId>org.apache.pdfbox</groupId>
<artifactId>pdfbox</artifactId>
<version>2.0.9</version>
</dependency>
<dependency> <dependency>
<groupId>com.github.jai-imageio</groupId> <groupId>com.github.jai-imageio</groupId>
......
package com.pcloud.common.dto;/**
* Created by ${user} on ${date}
*/
import java.io.Serializable;
/**
* @author TianChao
* @date 2018/6/22 11:04
*/
public class OrderParamForApp implements Serializable {
private static final long serialVersionUID = -8010969876295649975L;
}
package com.pcloud.common.dto;/**
* Created by ${user} on ${date}
*/
/**
* @author TianChao
* @date 2018/6/22 11:04
*/
public class OrderParamForLive extends OrderParamForApp {
private static final long serialVersionUID = -2221916506871980562L;
private Integer isSuperMerchant;
public Integer getIsSuperMerchant() {
return isSuperMerchant;
}
public void setIsSuperMerchant(Integer isSuperMerchant) {
this.isSuperMerchant = isSuperMerchant;
}
@Override
public String toString() {
return "OrderParamForLive{" +
"isSuperMerchant=" + isSuperMerchant +
'}';
}
}
...@@ -27,6 +27,11 @@ public class BaseEntity implements Serializable { ...@@ -27,6 +27,11 @@ public class BaseEntity implements Serializable {
private Long id; private Long id;
/** /**
* 用户ID
*/
private Long userId;
/**
* IP地址 * IP地址
*/ */
private String ipAddress; private String ipAddress;
...@@ -49,6 +54,14 @@ public class BaseEntity implements Serializable { ...@@ -49,6 +54,14 @@ public class BaseEntity implements Serializable {
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
protected Date updateTime; protected Date updateTime;
public Long getUserId() {
return userId;
}
public void setUserId(Long userId) {
this.userId = userId;
}
public String getIpAddress() { public String getIpAddress() {
return ipAddress; return ipAddress;
} }
......
...@@ -47,10 +47,14 @@ public enum AppTypeEnum { ...@@ -47,10 +47,14 @@ public enum AppTypeEnum {
INTERACT("INTERACT"), // 互动墙 INTERACT("INTERACT"), // 互动墙
SPECIAL("SPECIAL"), // 专题 SPECIAL("SPECIAL"), // 专题
CLOCK("CLOCK"), // 打卡 CLOCK("CLOCK"), // 打卡
TEST("TEST"), // 测试 TEST("TEST"), // 趣味测试(测试工具)
EBOOK("EBOOK"), // 电子书
LIVE_TIMETABLE("LIVE_TIMETABLE"), // 直播课表 LIVE_TIMETABLE("LIVE_TIMETABLE"), // 直播课表
DRAW("DRAW"), // 抽奖 DRAW("DRAW"), // 抽奖
WISH("WISH"); // 愿望单 WISH("WISH"),// 愿望单
LIVEAPP("LIVEAPP"), //直播3.0
TASTETEST("TASTETEST"), //趣味测试
VIDEO_CLASSIC("VIDEO_CLASSIC"); //经典版视频
/** /**
* 枚举转换 * 枚举转换
......
package com.pcloud.common.trade.service;
import java.util.List;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import com.pcloud.common.dto.ResponseDto;
import com.pcloud.common.trade.vo.PayParamVO;
import com.pcloud.common.trade.vo.TargetIdAndTypeVO;
/**
* 交易公用接口
* Created by ${user} on ${date}
*/
public interface TradeCommonService {
@RequestMapping(value = "/getPayParam",method = RequestMethod.POST)
ResponseEntity<ResponseDto<List<PayParamVO>>>getPayParam(@RequestBody TargetIdAndTypeVO targetIdAndTypeVO);
@RequestMapping(value = "getProductIdByAppId",method = RequestMethod.GET)
ResponseEntity<ResponseDto<Long>>getProductIdByAppId(@RequestParam("appId") Long appId);
}
package com.pcloud.common.trade.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Map;
/**
* @描述:问答支付dto
* @作者:TianChao
* @创建时间:2016年10月19日 上午10:26:11
* @版本:1.0
*/
@ApiModel(description = "立即付款dto")
public class PayParamVO implements Serializable{
private static final long serialVersionUID = 1424201849099702707L;
@ApiModelProperty(value = "商户id",dataType = "Long")
private Long merchantId;
/**
* 商品标识
*/
@ApiModelProperty(value = "商品标识",dataType = "Long")
private Long productId;
/**
* 商品数量
*/
@ApiModelProperty(value = "商品数量",dataType = "Integer")
private Integer quantity;
/**
* 规格id
*/
@ApiModelProperty(value = "规格id",dataType = "Long")
private Long specId;
@ApiModelProperty(value = "应用id",dataType = "Long")
private Long appId;
@ApiModelProperty(value = "地址id",dataType = "Long")
private Long addressId;
@ApiModelProperty(value = "isInvoice",dataType = "int")
private int isInvoice;
@ApiModelProperty(value = "发票内容",dataType = "String")
private String invoiceContent;
@ApiModelProperty(value = "发票抬头",dataType = "String")
private String invoiceHeader;
/**
* 发票抬头类型(0是个人,1是企业)
*/
@ApiModelProperty(value = "发票抬头类型(0是个人,1是企业)",dataType = "Integer")
private Integer invoiceHeaderType;
/**
* 证件号(公司为企业税号,个人为身份证号)
*/
@ApiModelProperty(value = "证件号(公司为企业税号,个人为身份证号)",dataType = "String")
private String invoiceCredentialNum;
@ApiModelProperty(value = "购物码",dataType = "String")
private String buyCode;
@ApiModelProperty(value = "电话",dataType = "String")
private String phone;
@ApiModelProperty(value = "isAskMore",dataType = "int")
private int isAskMore;
/**
* 购买服务人
*/
@ApiModelProperty(value = "购买服务人",dataType = "String")
private String serviceName;
/**
* 服务电话
*/
@ApiModelProperty(value = "服务电话",dataType = "String")
private String servicePhone;
/**
* 服务者邮箱
*/
@ApiModelProperty(value = "服务者邮箱",dataType = "String")
private String email;
private BigDecimal price;
private Long adviserId;
private Long sceneId;
private Map<String,Object> paramForApp;
private int hasOwnPrice;
private BigDecimal dealPrice;
private Integer paymentSource;
public Integer getPaymentSource() {
return paymentSource;
}
public void setPaymentSource(Integer paymentSource) {
this.paymentSource = paymentSource;
}
public BigDecimal getDealPrice() {
return dealPrice;
}
public void setDealPrice(BigDecimal dealPrice) {
this.dealPrice = dealPrice;
}
public int getHasOwnPrice() {
return hasOwnPrice;
}
public void setHasOwnPrice(int hasOwnPrice) {
this.hasOwnPrice = hasOwnPrice;
}
public Map<String, Object> getParamForApp() {
return paramForApp;
}
public void setParamForApp(Map<String, Object> paramForApp) {
this.paramForApp = paramForApp;
}
public Long getAdviserId() {
return adviserId;
}
public void setAdviserId(Long adviserId) {
this.adviserId = adviserId;
}
public Long getSceneId() {
return sceneId;
}
public void setSceneId(Long sceneId) {
this.sceneId = sceneId;
}
public BigDecimal getPrice() {
return price;
}
public void setPrice(BigDecimal price) {
this.price = price;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getServiceName() {
return serviceName;
}
public void setServiceName(String serviceName) {
this.serviceName = serviceName;
}
public String getServicePhone() {
return servicePhone;
}
public void setServicePhone(String servicePhone) {
this.servicePhone = servicePhone;
}
public int getIsAskMore() {
return isAskMore;
}
public void setIsAskMore(int isAskMore) {
this.isAskMore = isAskMore;
}
public Integer getInvoiceHeaderType() {
return invoiceHeaderType;
}
public void setInvoiceHeaderType(Integer invoiceHeaderType) {
this.invoiceHeaderType = invoiceHeaderType;
}
public String getInvoiceCredentialNum() {
return invoiceCredentialNum;
}
public void setInvoiceCredentialNum(String invoiceCredentialNum) {
this.invoiceCredentialNum = invoiceCredentialNum;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public String getBuyCode() {
return buyCode;
}
public void setBuyCode(String buyCode) {
this.buyCode = buyCode;
}
public int getIsInvoice() {
return isInvoice;
}
public void setIsInvoice(int isInvoice) {
this.isInvoice = isInvoice;
}
public String getInvoiceContent() {
return invoiceContent;
}
public void setInvoiceContent(String invoiceContent) {
this.invoiceContent = invoiceContent;
}
public String getInvoiceHeader() {
return invoiceHeader;
}
public void setInvoiceHeader(String invoiceHeader) {
this.invoiceHeader = invoiceHeader;
}
public Long getAddressId() {
return addressId;
}
public void setAddressId(Long addressId) {
this.addressId = addressId;
}
public Long getAppId() {
return appId;
}
public void setAppId(Long appId) {
this.appId = appId;
}
public Long getMerchantId() {
return merchantId;
}
public void setMerchantId(Long merchantId) {
this.merchantId = merchantId;
}
public Long getProductId() {
return productId;
}
public void setProductId(Long productId) {
this.productId = productId;
}
public Integer getQuantity() {
return quantity;
}
public void setQuantity(Integer quantity) {
this.quantity = quantity;
}
public Long getSpecId() {
return specId;
}
public void setSpecId(Long specId) {
this.specId = specId;
}
@Override
public String toString() {
return "PayParamVO{" +
"merchantId=" + merchantId +
", productId=" + productId +
", quantity=" + quantity +
", specId=" + specId +
", appId=" + appId +
", addressId=" + addressId +
", isInvoice=" + isInvoice +
", invoiceContent='" + invoiceContent + '\'' +
", invoiceHeader='" + invoiceHeader + '\'' +
", invoiceHeaderType=" + invoiceHeaderType +
", invoiceCredentialNum='" + invoiceCredentialNum + '\'' +
", buyCode='" + buyCode + '\'' +
", phone='" + phone + '\'' +
", isAskMore=" + isAskMore +
", serviceName='" + serviceName + '\'' +
", servicePhone='" + servicePhone + '\'' +
", email='" + email + '\'' +
", price=" + price +
", adviserId=" + adviserId +
", sceneId=" + sceneId +
", paramForApp=" + paramForApp +
", hasOwnPrice=" + hasOwnPrice +
", dealPrice=" + dealPrice +
", paymentSource=" + paymentSource +
'}';
}
}
package com.pcloud.common.trade.vo;/**
* Created by ${user} on ${date}
*/
import java.io.Serializable;
/**
* @author TianChao
* @date 2018/10/23 10:43
*/
public class TargetIdAndTypeVO implements Serializable {
private static final long serialVersionUID = 1581040394497248116L;
private Long targetId;
private String targetType;
private Long wechatUserId;
private boolean buyOneBook;
private int paymentSource;
private Long channelId;
private Long appId;
private Long officialAccountsId;
private Long adviserId;
private Long sceneId;
private String ipAddress;
public String getIpAddress() {
return ipAddress;
}
public void setIpAddress(String ipAddress) {
this.ipAddress = ipAddress;
}
public Long getAdviserId() {
return adviserId;
}
public void setAdviserId(Long adviserId) {
this.adviserId = adviserId;
}
public Long getSceneId() {
return sceneId;
}
public void setSceneId(Long sceneId) {
this.sceneId = sceneId;
}
public Long getOfficialAccountsId() {
return officialAccountsId;
}
public void setOfficialAccountsId(Long officialAccountsId) {
this.officialAccountsId = officialAccountsId;
}
public Long getChannelId() {
return channelId;
}
public void setChannelId(Long channelId) {
this.channelId = channelId;
}
public Long getAppId() {
return appId;
}
public void setAppId(Long appId) {
this.appId = appId;
}
public int getPaymentSource() {
return paymentSource;
}
public void setPaymentSource(int paymentSource) {
this.paymentSource = paymentSource;
}
public Long getWechatUserId() {
return wechatUserId;
}
public void setWechatUserId(Long wechatUserId) {
this.wechatUserId = wechatUserId;
}
public boolean isBuyOneBook() {
return buyOneBook;
}
public void setBuyOneBook(boolean buyOneBook) {
this.buyOneBook = buyOneBook;
}
public Long getTargetId() {
return targetId;
}
public void setTargetId(Long targetId) {
this.targetId = targetId;
}
public String getTargetType() {
return targetType;
}
public void setTargetType(String targetType) {
this.targetType = targetType;
}
@Override
public String toString() {
return "TargetIdAndTypeVO{" +
"targetId=" + targetId +
", targetType='" + targetType + '\'' +
", wechatUserId=" + wechatUserId +
", buyOneBook=" + buyOneBook +
", paymentSource=" + paymentSource +
", channelId=" + channelId +
", appId=" + appId +
", officialAccountsId=" + officialAccountsId +
", adviserId=" + adviserId +
", sceneId=" + sceneId +
", ipAddress='" + ipAddress + '\'' +
'}';
}
}
...@@ -2,6 +2,7 @@ package com.pcloud.common.utils; ...@@ -2,6 +2,7 @@ package com.pcloud.common.utils;
import java.util.List; import java.util.List;
import com.pcloud.common.page.PageBeanNew;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
...@@ -9,56 +10,78 @@ import org.springframework.beans.BeanUtils; ...@@ -9,56 +10,78 @@ import org.springframework.beans.BeanUtils;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
/** /**
*
*
* @author:songx * @author:songx
* @date:2018年8月24日,下午2:18:40 * @date:2018年8月24日,下午2:18:40
*/ */
public class BeanNewUtils { public class BeanNewUtils {
private static final Logger LOGGER = LoggerFactory.getLogger(BeanNewUtils.class); private static final Logger LOGGER = LoggerFactory.getLogger(BeanNewUtils.class);
/** /**
* 实体类之间的转换 * 实体类之间的转换
* *
* @param source * @param source 来源
* 来源 * @param clazz 目标对象
* @param clazz * @return
* 目标对象 */
* @return public static <T> T copyProperties(Object source, Class<T> clazz) {
*/ if (source == null) {
public static <T> T copyProperties(Object source, Class<T> clazz) { return null;
if (source == null) { }
return null; T t = null;
} try {
T t = null; t = clazz.newInstance();
try { } catch (Exception e) {
t = clazz.newInstance(); LOGGER.error("clazz newInstance is error:" + e.getMessage(), e);
} catch (Exception e) { }
LOGGER.error("clazz newInstance is error:" + e.getMessage(), e); BeanUtils.copyProperties(source, t);
} return t;
BeanUtils.copyProperties(source, t); }
return t;
}
/** /**
* 实体类之间的转换 * 实体类之间的转换
* *
* @param sources * @param sources 来源
* 来源 * @param clazz 目标对象
* @param clazz * @return
* 目标对象 */
* @return public static <T> List<T> copyProperties(List<?> sources, Class<T> clazz) {
*/ if (ListUtils.isEmpty(sources)) {
public static <T> List<T> copyProperties(List<?> sources, Class<T> clazz) { return null;
if (ListUtils.isEmpty(sources)) { }
return null; List<T> results = Lists.newArrayList();
} for (Object source : sources) {
List<T> results = Lists.newArrayList(); results.add(copyProperties(source, clazz));
for (Object source : sources) { }
results.add(copyProperties(source, clazz)); return results;
} }
return results;
} /**
* 分页结果的实体类之间的转换
*
* @param source
* @param clazz
* @param <T>
* @return
*/
public static <T> PageBeanNew<T> copyProperties(PageBeanNew<?> source, Class<T> clazz) {
if (source == null) {
return null;
}
List<?> recordList = source.getRecordList();
PageBeanNew<T> result = new PageBeanNew<T>();
result.setCurrentPage(source.getCurrentPage());
result.setNumPerPage(source.getNumPerPage());
result.setPageCount(source.getPageCount());
result.setTotalCount(source.getTotalCount());
source.setBeginPageIndex(source.getBeginPageIndex());
source.setEndPageIndex(source.getEndPageIndex());
if (ListUtils.isEmpty(recordList)) {
result.setRecordList(Lists.newArrayList());
return result;
}
result.setRecordList(copyProperties(recordList, clazz));
return result;
}
} }
package com.pcloud.common.utils;
import okhttp3.MediaType;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
import java.io.IOException;
import java.util.concurrent.TimeUnit;
public final class HttpKit {
private HttpKit() {
}
private static OkHttpClient httpClient = new OkHttpClient().newBuilder()
.connectTimeout(10, TimeUnit.SECONDS)
.writeTimeout(10, TimeUnit.SECONDS)
.readTimeout(30, TimeUnit.SECONDS).build();
private static final MediaType CONTENT_TYPE_FORM = MediaType
.parse("application/json");
protected static String post(String url, String data) {
okhttp3.RequestBody body = okhttp3.RequestBody.create(
CONTENT_TYPE_FORM, data);
okhttp3.Request request = new okhttp3.Request.Builder().url(url)
.post(body).build();
return exec(request);
}
public static String get(String url) throws IOException{
Request request = new Request.Builder()
.url(url).addHeader("token","0Id4baiRH818SVJjC2qjhdMwQh5DSfCJ")
.build();
Response response = httpClient.newCall(request).execute();
return response.body().string();// 返回的是string 类型
}
private static String exec(Request request) {
try {
Response response = httpClient.newCall(request)
.execute();
if (!response.isSuccessful())
throw new RuntimeException("Unexpected code " + response);
return response.body().string();
} catch (IOException e) {
throw new RuntimeException(e);
}
}
}
...@@ -20,13 +20,38 @@ import com.pcloud.common.utils.string.StringUtil; ...@@ -20,13 +20,38 @@ import com.pcloud.common.utils.string.StringUtil;
*/ */
public class LocalDateUtils { public class LocalDateUtils {
private static final DateTimeFormatter TIME = DateTimeFormatter.ofPattern("HHmmss");
private static final DateTimeFormatter SHORT_MILLISECOND = DateTimeFormatter.ofPattern("yyyyMMddHHmmssSSS");
private static final DateTimeFormatter SHORT_DATETIME = DateTimeFormatter.ofPattern("yyyyMMddHHmmss");
private static final DateTimeFormatter DATETIME = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
private static final DateTimeFormatter SHORT_DATE = DateTimeFormatter.ofPattern("yyyyMMdd");
private static final DateTimeFormatter DATE = DateTimeFormatter.ofPattern("yyyy-MM-dd");
/** /**
* 获取当前的日期字符串(yyyy-MM-dd) * 获取当前的日期字符串(yyyy-MM-dd)
* *
* @return * @return
*/ */
public static String getDateNow() { public static String getDateNow() {
return LocalDate.now().toString(); return LocalDate.now().format(DATE);
}
/**
* 获取当前的日期字符串(yyyyMMdd)
*
* @return
*/
public static String getShortDateNow() {
return LocalDate.now().format(SHORT_DATE);
}
/**
* 获取当前的时间字符串(HHmmss)
*
* @return
*/
public static String getShortTimeNow() {
return LocalDateTime.now().format(TIME);
} }
/** /**
...@@ -35,7 +60,16 @@ public class LocalDateUtils { ...@@ -35,7 +60,16 @@ public class LocalDateUtils {
* @return * @return
*/ */
public static String getDateTimeNow() { public static String getDateTimeNow() {
return LocalDateTime.now().withNano(0).toString().replace("T", " "); return LocalDateTime.now().format(DATETIME);
}
/**
* 获取当前的日期字符串(yyyyMMddHHmmss)
*
* @return
*/
public static String getShortDateTimeNow() {
return LocalDateTime.now().format(SHORT_DATETIME);
} }
/** /**
...@@ -44,8 +78,7 @@ public class LocalDateUtils { ...@@ -44,8 +78,7 @@ public class LocalDateUtils {
* @return * @return
*/ */
public static String getYmdhmss() { public static String getYmdhmss() {
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMddHHmmssSSS"); return LocalDateTime.now().format(SHORT_MILLISECOND);
return LocalDateTime.now().format(formatter);
} }
/** /**
...@@ -65,7 +98,10 @@ public class LocalDateUtils { ...@@ -65,7 +98,10 @@ public class LocalDateUtils {
* @return * @return
*/ */
public static String convertToString(LocalDateTime localDateTime) { public static String convertToString(LocalDateTime localDateTime) {
return localDateTime.withNano(0).toString().replace("T", " "); if (localDateTime == null) {
return null;
}
return localDateTime.format(DATETIME);
} }
/** /**
......
package com.pcloud.common.utils; package com.pcloud.common.utils;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import org.apache.commons.collections.MapUtils; import org.apache.commons.collections.MapUtils;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import com.google.common.collect.Maps; import com.google.common.collect.Maps;
import com.pcloud.common.page.PageBeanNew; import com.pcloud.common.page.PageBeanNew;
/** /**
* 返回结果工具类 * 返回结果工具类
* *
* @author:songx * @author:songx
* @date:2018年8月8日,下午2:09:16 * @date:2018年8月8日,下午2:09:16
*/ */
public class ResultUtils { public class ResultUtils {
/** /**
* 集合查询结果判断 * 集合查询结果判断
* *
* @param lists * @param lists
* @return * @return
*/ */
public static <T> List<T> list(List<T> lists) { public static <T> List<T> list(List<T> lists) {
if (!ListUtils.isEmpty(lists)) { if (!ListUtils.isEmpty(lists)) {
return lists; return lists;
} }
return Lists.newArrayList(); return Lists.newArrayList();
} }
/** /**
* map查询结果判断 * map查询结果判断
* *
* @param lists * @param lists
* @return * @return
*/ */
public static <K, V> Map<K, V> map(Map<K, V> map) { public static <K, V> Map<K, V> map(Map<K, V> map) {
if (!MapUtils.isEmpty(map)) { if (!MapUtils.isEmpty(map)) {
return map; return map;
} }
return Maps.newHashMap(); return Maps.newHashMap();
} }
/** /**
* 分页查询结果判断 * 分页查询结果判断
* *
* @param pageBeanNew * @param pageBeanNew
* @return * @return
*/ */
public static <T> PageBeanNew<T> pageBeanNew(PageBeanNew<T> pageBeanNew, Integer currentPage, Integer numPerPage) { public static <T> PageBeanNew<T> pageBeanNew(PageBeanNew<T> pageBeanNew, Integer currentPage, Integer numPerPage) {
if (pageBeanNew != null) { if (pageBeanNew != null) {
return pageBeanNew; return pageBeanNew;
} }
return new PageBeanNew<T>(currentPage, numPerPage, 0, Lists.newArrayList()); return new PageBeanNew<T>(currentPage, numPerPage, 0, Lists.newArrayList());
} }
} }
...@@ -19,6 +19,7 @@ import org.slf4j.Logger; ...@@ -19,6 +19,7 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.PropertySource;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import com.pcloud.common.utils.DateUtils; import com.pcloud.common.utils.DateUtils;
import com.pcloud.common.utils.ListUtils; import com.pcloud.common.utils.ListUtils;
...@@ -29,6 +30,7 @@ import com.pcloud.common.utils.ListUtils; ...@@ -29,6 +30,7 @@ import com.pcloud.common.utils.ListUtils;
* @date 2018/4/23 * @date 2018/4/23
*/ */
@Component("solrUtils") @Component("solrUtils")
@PropertySource(value = "classpath:public_system.properties")
public class SolrUtils { public class SolrUtils {
private static Logger LOGGER = LoggerFactory.getLogger(SolrUtils.class); private static Logger LOGGER = LoggerFactory.getLogger(SolrUtils.class);
......
This diff is collapsed. Click to expand it.
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