Commit 957ac6e5 by shuyunhu
parents 3d06297f 302789f6
...@@ -10,9 +10,26 @@ spring: ...@@ -10,9 +10,26 @@ spring:
loadbalancer: loadbalancer:
retry: retry:
enabled: true enabled: true
datasource:
type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: com.mysql.jdbc.Driver
initialSize: 2
minIdle: 5
maxActive: 50
maxWait: 60000
timeBetweenEvictionRunsMillis: 3000
minEvictableIdleTimeMillis: 3600000
validationQuery: SELECT 'x' FROM DUAL
testWhileIdle: true
testOnBorrow: false
testOnReturn: false
poolPreparedStatements: true
maxPoolPreparedStatementPerConnectionSize: 20
connectionPropertiesNew: config.decrypt=true;config.decrypt.key=${spring.datasource.publicKey}
filtersNew: config
metrics: metrics:
influx: influx:
uri: http://192.168.83.241:8086/write uri: http://192.168.89.200:8086/write
step: PT10S step: PT10S
db: ${spring.application.name} db: ${spring.application.name}
enabled: true enabled: true
...@@ -32,7 +49,7 @@ spring: ...@@ -32,7 +49,7 @@ spring:
retry: retry:
max-attempts: 3 # 最大重试次数 max-attempts: 3 # 最大重试次数
enabled: true # 是否开启消费者重试(为false时关闭消费者重试,这时消费端代码异常会一直重复收到消息) enabled: true # 是否开启消费者重试(为false时关闭消费者重试,这时消费端代码异常会一直重复收到消息)
initial-interval: 5000 # 重试间隔时间(单位毫秒) initial-interval: 300000 # 重试间隔时间(单位毫秒)
default-requeue-rejected: true # 重试次数超过上面的设置之后是否丢弃(false不丢弃时需要写相应代码将该消息加入死信队列) default-requeue-rejected: true # 重试次数超过上面的设置之后是否丢弃(false不丢弃时需要写相应代码将该消息加入死信队列)
data: data:
solr: solr:
......
...@@ -86,4 +86,6 @@ uedThirdPartyOrderUrl=https://rayscloud.chubanyun.net ...@@ -86,4 +86,6 @@ uedThirdPartyOrderUrl=https://rayscloud.chubanyun.net
## \u7CFB\u7EDF\u73AF\u5883 ## \u7CFB\u7EDF\u73AF\u5883
system.env = pro system.env = pro
jsbj.agent.id = 1000009100 jsbj.agent.id = 1000009100
\ No newline at end of file
product.parentTutor.proLabelId = 7461
\ No newline at end of file
...@@ -10,9 +10,26 @@ spring: ...@@ -10,9 +10,26 @@ spring:
loadbalancer: loadbalancer:
retry: retry:
enabled: true enabled: true
datasource:
type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: com.mysql.jdbc.Driver
initialSize: 2
minIdle: 5
maxActive: 50
maxWait: 60000
timeBetweenEvictionRunsMillis: 3000
minEvictableIdleTimeMillis: 3600000
validationQuery: SELECT 'x' FROM DUAL
testWhileIdle: true
testOnBorrow: false
testOnReturn: false
poolPreparedStatements: true
maxPoolPreparedStatementPerConnectionSize: 20
connectionPropertiesNew: config.decrypt=true;config.decrypt.key=${spring.datasource.publicKey}
filtersNew: config
metrics: metrics:
influx: influx:
uri: http://192.168.83.241:8086/write uri: http://192.168.89.200:8086/write
step: PT10S step: PT10S
db: ${spring.application.name} db: ${spring.application.name}
enabled: false enabled: false
...@@ -32,7 +49,7 @@ spring: ...@@ -32,7 +49,7 @@ spring:
retry: retry:
max-attempts: 3 # 最大重试次数 max-attempts: 3 # 最大重试次数
enabled: true # 是否开启消费者重试(为false时关闭消费者重试,这时消费端代码异常会一直重复收到消息) enabled: true # 是否开启消费者重试(为false时关闭消费者重试,这时消费端代码异常会一直重复收到消息)
initial-interval: 5000 # 重试间隔时间(单位毫秒) initial-interval: 300000 # 重试间隔时间(单位毫秒)
default-requeue-rejected: true # 重试次数超过上面的设置之后是否丢弃(false不丢弃时需要写相应代码将该消息加入死信队列) default-requeue-rejected: true # 重试次数超过上面的设置之后是否丢弃(false不丢弃时需要写相应代码将该消息加入死信队列)
data: data:
solr: solr:
......
...@@ -88,4 +88,6 @@ uedThirdPartyOrderUrl=http://deveapi.chubanyun.net ...@@ -88,4 +88,6 @@ uedThirdPartyOrderUrl=http://deveapi.chubanyun.net
## \u7CFB\u7EDF\u73AF\u5883 ## \u7CFB\u7EDF\u73AF\u5883
system.env = uat system.env = uat
jsbj.agent.id = 12829 jsbj.agent.id = 12829
\ No newline at end of file
product.parentTutor.proLabelId = 812
\ No newline at end of file
package com.pcloud.common.core.biz;
import com.pcloud.common.core.dto.BacklogQueueDto;
import com.pcloud.common.exceptions.BizException;
/**
* @描述:待办事项统计队列
* @作者:zhuyajie
* @创建时间:10:33 2018/10/31
* @版本:1.0
*/
public interface BacklogQueueBiz {
/**
* 发送待办事项
* @param backlogQueueDto
*/
public void sendBacklogQueue(BacklogQueueDto backlogQueueDto)throws BizException;
}
package com.pcloud.common.core.biz;
import com.pcloud.common.core.aspect.ParamLog;
import com.pcloud.common.core.constant.MQQueueConstant;
import com.pcloud.common.core.dto.BacklogQueueDto;
import com.pcloud.common.exceptions.BizException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.amqp.core.AmqpTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
/**
* @描述:待办事务统计
* @作者:zhuyajie
* @创建时间:10:46 2018/10/31
* @版本:1.0
*/
@Component("backlogQueueBiz")
public class BacklogQueueBizImpl implements BacklogQueueBiz {
private final static Logger logger = LoggerFactory.getLogger(BacklogQueueBizImpl.class);
@Autowired
private AmqpTemplate amqpTemplate;
@Override
@ParamLog("发送待办事务通知")
public void sendBacklogQueue(BacklogQueueDto backlogQueueDto) throws BizException{
if (backlogQueueDto == null) {
throw BizException.PARAM_IS_NULL;
}
try {
amqpTemplate.convertAndSend(MQQueueConstant.BACKLOG, backlogQueueDto);
} catch (Exception e) {
logger.error("发送失败," + e.getMessage() + "," + backlogQueueDto.toString(), e);
throw BizException.SEND_QUEUE_FAIL;
}
}
}
...@@ -77,7 +77,12 @@ public enum AppTypeEnum { ...@@ -77,7 +77,12 @@ public enum AppTypeEnum {
/** /**
* 打卡 * 打卡
*/ */
CLOCK("clock"); CLOCK("clock"),
/**
* 伴读魔法箱
*/
AUDIO_MAGIC("magic");
......
...@@ -85,15 +85,20 @@ public enum ConvertEnum { ...@@ -85,15 +85,20 @@ public enum ConvertEnum {
*/ */
AUDIO_LESSON("AUDIO_LESSON"), AUDIO_LESSON("AUDIO_LESSON"),
/** /**
* 音频纯听 * 音频纯听
*/ */
AUDIO_LISTEN("AUDIO_LISTEN"); AUDIO_LISTEN("AUDIO_LISTEN"),
/** /**
* 值 * 音频魔法箱
*/ */
public final String value; AUDIO_MAGIC("AUDIO_MAGIC");
/**
* 值
*/
public final String value;
/** /**
* 构造 * 构造
......
...@@ -16,6 +16,11 @@ public class MQQueueConstant { ...@@ -16,6 +16,11 @@ public class MQQueueConstant {
public static final String TEMPLATE = "templateQueue"; public static final String TEMPLATE = "templateQueue";
/** /**
* 音频配音(MP3)
*/
public static final String DUBBING = "dubbingQueue";
/**
* 文件转码(PDF、OFFICE) * 文件转码(PDF、OFFICE)
*/ */
public static final String TRANSCODE = "transcodeQueue"; public static final String TRANSCODE = "transcodeQueue";
...@@ -86,6 +91,11 @@ public class MQQueueConstant { ...@@ -86,6 +91,11 @@ public class MQQueueConstant {
public static final String CONVERT_TO_AUDIOLESSON = "convert2AudioLessonQueue"; public static final String CONVERT_TO_AUDIOLESSON = "convert2AudioLessonQueue";
/** /**
* 文件转码结束(音视频)->音频课/纯听
*/
public static final String CONVERT_TO_AUDIOMAGIC = "convert2AudioMagicQueue";
/**
* 数据埋点 * 数据埋点
*/ */
public static final String FRONT_EVENT = "frontEventQueue"; public static final String FRONT_EVENT = "frontEventQueue";
...@@ -150,4 +160,9 @@ public class MQQueueConstant { ...@@ -150,4 +160,9 @@ public class MQQueueConstant {
*/ */
public static final String DEAD = "rays.dlq"; public static final String DEAD = "rays.dlq";
/**
* 待办事项数量统计
*/
public static final String BACKLOG = "backlogQueue";
} }
...@@ -16,10 +16,15 @@ public class MQTopicProducer { ...@@ -16,10 +16,15 @@ public class MQTopicProducer {
*/ */
public static final String FILE_TRANSCODE = "topic.fileTranscode"; public static final String FILE_TRANSCODE = "topic.fileTranscode";
/** /**
* 报名新增用户 * 音频配音结束(MP3)
*/ */
public static final String BM_ADD_USER = "topic.bmAddUser"; public static final String FILE_DUBBING = "topic.fileDubbing";
/**
* 报名新增用户
*/
public static final String BM_ADD_USER = "topic.bmAddUser";
/** /**
* 应用新增 * 应用新增
...@@ -70,8 +75,15 @@ public class MQTopicProducer { ...@@ -70,8 +75,15 @@ public class MQTopicProducer {
* TIP * TIP
*/ */
public static final String TIP = "topic.tip"; public static final String TIP = "topic.tip";
/** /**
* 打赏给读者
*/
public static final String TIP_FOR_WECHAT_USER = "topic.tipForWechatUser";
/**
* GENUINE
*/
public static final String GENUINE = "topic.genuine";
/**
* 订单完成 * 订单完成
*/ */
public static final String FINISH_ORDER = "topic.finishOrder"; public static final String FINISH_ORDER = "topic.finishOrder";
...@@ -266,13 +278,28 @@ public class MQTopicProducer { ...@@ -266,13 +278,28 @@ public class MQTopicProducer {
*/ */
public static final String RECORD_USER_HABIT = "topic.recordUserHabit"; public static final String RECORD_USER_HABIT = "topic.recordUserHabit";
/** /**
* topic交换机名称(勿改) * 扫码
*/ */
public static final String EXCHAGE = "rays.topic"; public static final String SCAN_QRCODE = "topic.scanQrcode";
/**
* topic交换机名称(勿改)
*/
public static final String EXCHAGE = "rays.topic";
/** /**
* 更新图书封面图 * 更新图书封面图
*/ */
public static final String UPDATE_BOOK_COVERIMG = "topic.updateBookCoverImg"; public static final String UPDATE_BOOK_COVERIMG = "topic.updateBookCoverImg";
/**
* 微信用户关系
*/
public static final String WECHAT_RELATE_INFO = "topic.wechatRelateInfo";
/**
* 更新用户头像
*/
public static final String UPDATE_USER_HEADURL = "topic.updateUserHeadUrl";
} }
...@@ -223,6 +223,21 @@ public class ProductTypeConstant { ...@@ -223,6 +223,21 @@ public class ProductTypeConstant {
public static final String EBOOK_APP = "EBOOK_APP"; public static final String EBOOK_APP = "EBOOK_APP";
/** /**
* 亲子伴读魔法箱
*/
public static final String AUDIO_MAGIC = "AUDIO_MAGIC";
/**
* 音频课
*/
public static final String AUDIO_SCHEDULE = "AUDIO_SCHEDULE";
/**
* 音频课程
*/
public static final String AUDIO_COURSE = "AUDIO_COURSE";
/**
* 热门作品类型 * 热门作品类型
*/ */
public static final String[] HOT_PRODUCT_TYPE = {QA, PDF, VIDEO, PRETEST}; public static final String[] HOT_PRODUCT_TYPE = {QA, PDF, VIDEO, PRETEST};
...@@ -231,7 +246,7 @@ public class ProductTypeConstant { ...@@ -231,7 +246,7 @@ public class ProductTypeConstant {
* 资源型作品(免费即可体验) * 资源型作品(免费即可体验)
*/ */
public static final String[] RESOURCE_PRODUCT = {AUDIO, VIDEO, PDF, EBOOK, ALBUM, PRETEST, QANEWS, public static final String[] RESOURCE_PRODUCT = {AUDIO, VIDEO, PDF, EBOOK, ALBUM, PRETEST, QANEWS,
FORMAT, WORD, ARTICLE, LISTEN, SCHEDULE, PBMUSIC, TUTORIAL, VIDEO_SCHEDULE}; FORMAT, WORD, ARTICLE, LISTEN, SCHEDULE, PBMUSIC, TUTORIAL, VIDEO_SCHEDULE, AUDIO_SCHEDULE};
/** /**
* 参与促销激励作品 * 参与促销激励作品
...@@ -248,11 +263,16 @@ public class ProductTypeConstant { ...@@ -248,11 +263,16 @@ 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, AUDIO_RESOURCE, QA_APP, EBOOK_APP}; EF, MUSIC, VIDEO_COURSE, PRETESTAPP, AUDIO_RESOURCE, QA_APP, EBOOK_APP, AUDIO_MAGIC};
/** /**
* 数据平台埋点型作品 * 数据平台埋点型作品
*/ */
public static final String[] TRACK_PRODUCT = {COMMON, AUDIO, VIDEO, PDF, EBOOK, BOOK, MATCH, ALBUM, NUMBER, MEMBER, public static final String[] TRACK_PRODUCT = {COMMON, AUDIO, VIDEO, PDF, EBOOK, BOOK, MATCH, ALBUM, NUMBER, MEMBER,
PRETEST, QANEWS, REVIEW, TOOL, QS, FORMAT, WORD, ARTICLE}; PRETEST, QANEWS, REVIEW, TOOL, QS, FORMAT, WORD, ARTICLE};
/**
* 作品下资源来源于content中心的作品
*/
public static final String[] RESOURCE_CONTENT_PRODUCT = {AUDIO,VIDEO,BOOK,LISTEN,PDF,ALBUM,FORMAT,EBOOK};
} }
...@@ -14,7 +14,8 @@ public enum RoleCodeEnum { ...@@ -14,7 +14,8 @@ public enum RoleCodeEnum {
merchant("merchant"), // 商户 merchant("merchant"), // 商户
channel("channel"), // 渠道 channel("channel"), // 渠道
agent("agent"), // 代理 agent("agent"), // 代理
adviser("adviser"); // 顾问 adviser("adviser"), // 顾问
platform("platform"); // 平台
/** /**
* 值 * 值
......
...@@ -48,6 +48,8 @@ public enum WeektaskCode { ...@@ -48,6 +48,8 @@ public enum WeektaskCode {
UPDATE_BOOK_INFO("update_book_info"), UPDATE_BOOK_INFO("update_book_info"),
//调整应用顺序 //调整应用顺序
SET_STEP("set_step"), SET_STEP("set_step"),
//确定回复
DEFINITE_REPLY("definite_reply"),
/** /**
* -------通用埋点------ * -------通用埋点------
*/ */
...@@ -139,6 +141,15 @@ public enum WeektaskCode { ...@@ -139,6 +141,15 @@ public enum WeektaskCode {
C_PUBLISH_DYNAMIC("c_publish_dynamic"), C_PUBLISH_DYNAMIC("c_publish_dynamic"),
//专题问答设置免费 //专题问答设置免费
SET_FREE("set_free"), SET_FREE("set_free"),
//选择性格心理类场景
CREATE_TEST_CHARACTER("create_test_character"),
//选择知识抢答类场景
CREATE_TEST_RESPONDER("create_test_responder"),
//读者圈中加入直播课程
W_POST_LIVEAPP_NOTE("w_post_liveapp_note"),
//创建专题扩展应用新增栏目
NEW_COLUMN("new_column"),
//----------------------------------成就任务------------------- //----------------------------------成就任务-------------------
/** /**
* 读者在读者圈中发动态 * 读者在读者圈中发动态
...@@ -651,6 +662,62 @@ public enum WeektaskCode { ...@@ -651,6 +662,62 @@ public enum WeektaskCode {
*创建抽奖应用 *创建抽奖应用
*/ */
W5_CREATE_DRAW_APP("w5_create_draw_app"), W5_CREATE_DRAW_APP("w5_create_draw_app"),
/**
*预览效果
*/
W5_CONFIGURE_NEWS("w5_configure_news"),
/**
*分享排名
*/
W5_SHARE_RANK("w5_share_rank"),
/**
* 新增性格心理类场景应用(周E3)
*/
W5_CREATE_TEST_CHARACTER("w5_create_test_character"),
/**
* 新增知识抢答类场景应用(周F3)
*/
W5_CREATE_TEST_RESPONDER("w5_create_test_responder"),
/**
* 新建直播课应用(周E4)
*/
W5_CREATE_RELATE_LIVEAPP("w5_create_relate_liveapp"),
/**
* 新建读者交流圈应用(周E5)
*/
W5_CREATE_RELATE_GROUP("w5_create_relate_group"),
/**
* 新建读书卡片应用(周E6)
*/
W5_CREATE_BOOKCARD("w5_create_bookcard"),
/**
* 新建电子书应用(周E7)
*/
W5_CREATE_EBOOK("w5_create_ebook"),
/**
* 新建分数排名应用(周F6)
*/
W5_CREATE_SCORE_APP("w5_create_score_app"),
/**
* 新建专题扩展应用(周F7)
*/
W5_CREATE_SPECIAL_APP("w5_create_special_app"),
/**
* 新建作者留言应用(周F8)
*/
W5_CREATE_VOICE_APP("w5_create_voice_app"),
/**
* 新建报名应用(周F9)
*/
W5_CREATE_BM_APP("w5_create_bm_app"),
/**
* 新建专家咨询应用(周F4)
*/
W5_CREATE_QA_APP("w5_create_qa_app"),
/**
*体验专家咨询应用(周F5)
*/
W5_EXPERIENCE_CONSULTING("w5_experience_consulting"),
; ;
public final String code; public final String code;
......
package com.pcloud.common.core.dto;
import java.io.Serializable;
/**
* @描述:待办事务统计
* @作者:zhuyajie
* @创建时间:10:36 2018/10/31
* @版本:1.0
*/
public class BacklogQueueDto implements Serializable{
/**
* 编辑id
*/
private Long adviserId;
/**
* 应用id或商品id
*/
private Long targetId;
/**
*类型(APP/PRODUCT)
*/
private String targetType;
/**
*封面图
*/
private String coverImg;
/**
*标题
*/
private String title;
/**
*待审核/确认数量
*/
private Integer waitCount;
/**
*新动态数量
*/
private Integer newCount;
/**
*应用/商品类型编码
*/
private String typeCode;
public Long getAdviserId() {
return adviserId;
}
public void setAdviserId(Long adviserId) {
this.adviserId = adviserId;
}
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;
}
public String getCoverImg() {
return coverImg;
}
public void setCoverImg(String coverImg) {
this.coverImg = coverImg;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public Integer getWaitCount() {
return waitCount;
}
public void setWaitCount(Integer waitCount) {
this.waitCount = waitCount;
}
public Integer getNewCount() {
return newCount;
}
public void setNewCount(Integer newCount) {
this.newCount = newCount;
}
public String getTypeCode() {
return typeCode;
}
public void setTypeCode(String typeCode) {
this.typeCode = typeCode;
}
@Override
public String toString() {
return "BacklogQueueDto{" +
"adviserId=" + adviserId +
", targetId=" + targetId +
", targetType='" + targetType + '\'' +
", coverImg='" + coverImg + '\'' +
", title='" + title + '\'' +
", waitCount=" + waitCount +
", newCount=" + newCount +
", typeCode='" + typeCode + '\'' +
'}';
}
}
...@@ -9,216 +9,232 @@ import java.io.Serializable; ...@@ -9,216 +9,232 @@ import java.io.Serializable;
/** /**
* @描述: * @描述:
*
* @作者:songx * @作者:songx
* @创建时间:2017年2月27日,上午11:23:29 @版本:1.0 * @创建时间:2017年2月27日,上午11:23:29 @版本:1.0
*/ */
public class ConvertQueueDto implements Serializable { public class ConvertQueueDto implements Serializable {
/** /**
* *
*/ */
private static final long serialVersionUID = 7968821573480010447L; private static final long serialVersionUID = 7968821573480010447L;
/** /**
* 标识 * 标识
*/ */
private Long id; private Long id;
/** /**
* 文件UUID * 文件UUID
*/ */
private String fileId; private String fileId;
/** /**
* 来源类型 * 来源类型
*/ */
private String fromType; private String fromType;
/** /**
* 自定义类型,fromType的二级类型 * 自定义类型,fromType的二级类型
*/ */
@ApiModelProperty(name = "自定义类型", dataType = "String") @ApiModelProperty(name = "自定义类型", dataType = "String")
private String customType; private String customType;
/** /**
* 来源标识 * 视频截图时间点
*/ */
private Long fromId; private int snapshotTime;
/** /**
* 文件路径 * 来源标识
*/ */
private String fileUrl; private Long fromId;
/** /**
* 文件大小 * 文件路径
*/ */
private Long fileSize; private String fileUrl;
/** /**
* 文件类型 * 文件大小
*/ */
private String fileType; private Long fileSize;
/** /**
* 在缓存中被处理的次数 * 文件类型
*/ */
private int processTimes = 0; private String fileType;
/** /**
* 转换成功标记,true:成功,false失败 * 在缓存中被处理的次数
*/ */
private Boolean state; private int processTimes = 0;
/** /**
* 封面图 * 转换成功标记,true:成功,false失败
*/ */
private String coverImg; private Boolean state;
/** /**
* 使用地址 * 封面图
*/ */
private String pilotUrl; private String coverImg;
/** /**
* 视频时长 * 使用地址
*/ */
private Integer duration; private String pilotUrl;
/** /**
* 视频m3u8地址 * 视频时长
*/ */
private String m3u8Url; private Integer duration;
public String getCustomType() { /**
return customType; * 视频m3u8地址
} */
private String m3u8Url;
public void setCustomType(String customType) {
this.customType = customType; public int getSnapshotTime() {
} return snapshotTime;
}
public String getM3u8Url() {
return m3u8Url; public void setSnapshotTime(int snapshotTime) {
} this.snapshotTime = snapshotTime;
}
public void setM3u8Url(String m3u8Url) {
this.m3u8Url = m3u8Url; public String getCustomType() {
} return customType;
}
public Integer getDuration() {
return duration; public void setCustomType(String customType) {
} this.customType = customType;
}
public void setDuration(Integer duration) {
this.duration = duration; public String getM3u8Url() {
} return m3u8Url;
}
public Long getFromId() {
return fromId; public void setM3u8Url(String m3u8Url) {
} this.m3u8Url = m3u8Url;
}
public void setFromId(Long fromId) {
this.fromId = fromId; public Integer getDuration() {
} return duration;
}
public String getPilotUrl() {
return pilotUrl; public void setDuration(Integer duration) {
} this.duration = duration;
}
public void setPilotUrl(String pilotUrl) {
this.pilotUrl = pilotUrl; public Long getFromId() {
} return fromId;
}
public String getCoverImg() {
return coverImg; public void setFromId(Long fromId) {
} this.fromId = fromId;
}
public void setCoverImg(String coverImg) {
this.coverImg = coverImg; public String getPilotUrl() {
} return pilotUrl;
}
public Boolean getState() {
return state; public void setPilotUrl(String pilotUrl) {
} this.pilotUrl = pilotUrl;
}
public void setState(Boolean state) {
this.state = state; public String getCoverImg() {
} return coverImg;
}
public String getFileType() {
return fileType; public void setCoverImg(String coverImg) {
} this.coverImg = coverImg;
}
public void setFileType(String fileType) {
this.fileType = fileType; public Boolean getState() {
} return state;
}
public Long getId() {
return id; public void setState(Boolean state) {
} this.state = state;
}
public void setId(Long id) {
this.id = id; public String getFileType() {
} return fileType;
}
public String getFileId() {
return fileId; public void setFileType(String fileType) {
} this.fileType = fileType;
}
public void setFileId(String fileId) {
this.fileId = fileId; public Long getId() {
} return id;
}
public String getFromType() {
return fromType; public void setId(Long id) {
} this.id = id;
}
public void setFromType(String fromType) {
this.fromType = fromType; public String getFileId() {
} return fileId;
}
/**
* @return Returns the fileUrl. public void setFileId(String fileId) {
*/ this.fileId = fileId;
public String getFileUrl() { }
return fileUrl;
} public String getFromType() {
return fromType;
/** }
* @param fileUrl The fileUrl to set.
*/ public void setFromType(String fromType) {
public void setFileUrl(String fileUrl) { this.fromType = fromType;
this.fileUrl = fileUrl; }
}
/**
/** * @return Returns the fileUrl.
* @return Returns the fileSize. */
*/ public String getFileUrl() {
public Long getFileSize() { return fileUrl;
return fileSize; }
}
/**
/** * @param fileUrl
* @param fileSize The fileSize to set. * The fileUrl to set.
*/ */
public void setFileSize(Long fileSize) { public void setFileUrl(String fileUrl) {
this.fileSize = fileSize; this.fileUrl = fileUrl;
} }
public int getProcessTimes() { /**
return processTimes; * @return Returns the fileSize.
} */
public Long getFileSize() {
public void setProcessTimes(int processTimes) { return fileSize;
this.processTimes = processTimes; }
}
/**
@Override * @param fileSize
public String toString() { * The fileSize to set.
return "ConvertQueueDto [fileId=" + fileId + ", fromType=" + fromType + ", fileUrl=" + fileUrl + ", fileSize=" */
+ fileSize + ", fileType=" + fileType + ", state=" + state + ", coverImg=" + coverImg + ", pilotUrl=" public void setFileSize(Long fileSize) {
+ pilotUrl + "]"; this.fileSize = fileSize;
} }
public int getProcessTimes() {
return processTimes;
}
public void setProcessTimes(int processTimes) {
this.processTimes = processTimes;
}
@Override
public String toString() {
return "ConvertQueueDto [fileId=" + fileId + ", fromType=" + fromType + ", fileUrl=" + fileUrl + ", fileSize="
+ fileSize + ", fileType=" + fileType + ", state=" + state + ", coverImg=" + coverImg + ", pilotUrl="
+ pilotUrl + "]";
}
} }
...@@ -32,6 +32,14 @@ public class SendAppMessageDto implements Serializable{ ...@@ -32,6 +32,14 @@ public class SendAppMessageDto implements Serializable{
* 模板参数 * 模板参数
*/ */
private Map<String, Object> paramKeyMap; private Map<String, Object> paramKeyMap;
/**
* 设备类型
*/
private String deviceType;
/**
* 应用id
*/
private Long appId;
public String getRegistrationId() { public String getRegistrationId() {
return registrationId; return registrationId;
...@@ -64,12 +72,35 @@ public class SendAppMessageDto implements Serializable{ ...@@ -64,12 +72,35 @@ public class SendAppMessageDto implements Serializable{
public void setIsNow(Boolean isNow) { public void setIsNow(Boolean isNow) {
this.isNow = isNow; this.isNow = isNow;
} }
public String getDeviceType() {
return deviceType;
}
public void setDeviceType(String deviceType) {
this.deviceType = deviceType;
}
public Long getAppId() {
return appId;
}
public void setAppId(Long appId) {
this.appId = appId;
}
@Override @Override
public String toString() { public String toString() {
return "SendAppMessageDto [registrationId=" + registrationId + ", adviserId=" + adviserId + ", typeCode=" return "SendAppMessageDto{" +
+ typeCode + ", isNow=" + isNow + ", paramKeyMap=" + paramKeyMap + "]"; "registrationId='" + registrationId + '\'' +
", adviserId=" + adviserId +
", typeCode='" + typeCode + '\'' +
", isNow=" + isNow +
", paramKeyMap=" + paramKeyMap +
", deviceType='" + deviceType + '\'' +
", appId=" + appId +
'}';
} }
} }
/**
*
*/
package com.pcloud.common.core.dto.dubbing;
import java.io.Serializable;
import com.alibaba.fastjson.JSONObject;
/**
*
* @author:songx
* @date:2018年12月5日,下午5:07:40
*/
public class AudioDTO implements Serializable {
/**
*
*/
private static final long serialVersionUID = 1217229671463911762L;
/**
* 文件名称
*/
private String fileName;
/**
* 时长
*/
private int duration;
/**
* 文件地址
*/
private String fileUrl;
/**
* 文件大小
*/
private long fileSize;
/**
* 语音文件插入时间点
*/
private int start;
/**
* id
*/
private int id;
public long getFileSize() {
return fileSize;
}
public void setFileSize(long fileSize) {
this.fileSize = fileSize;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getFileName() {
return fileName;
}
public void setFileName(String fileName) {
this.fileName = fileName;
}
public int getDuration() {
return duration;
}
public void setDuration(int duration) {
this.duration = duration;
}
public String getFileUrl() {
return fileUrl;
}
public void setFileUrl(String fileUrl) {
this.fileUrl = fileUrl;
}
public int getStart() {
return start;
}
public void setStart(int start) {
this.start = start;
}
@Override
public String toString() {
return "DubbingResultDTO : " + JSONObject.toJSONString(this);
}
}
package com.pcloud.common.core.dto.dubbing;
import java.io.Serializable;
import java.util.List;
import com.alibaba.fastjson.JSONObject;
/**
* 绘本配音资源DTO
*
* @author:songx
* @date:2018年12月5日,上午10:07:26
*/
public class DubbingDTO implements Serializable {
/**
*
*/
private static final long serialVersionUID = -5639047705106025465L;
/**
* 用户添加的问题文本(不超过5条)
*/
private List<SpeechDTO> speechDTOs;
/**
* 待合成的背景音乐URL(不超过4条)
*/
private String[] bgms;
/**
* 录音文件地址
*/
private String soundUrl;
/**
* 来源类型
*/
private String fromType;
/**
* 导语
*/
private String beforeText;
/**
* 结束语
*/
private String afterText;
/**
* 应用ID
*/
private Long appId;
/**
* 编辑ID
*/
private Long adviserId;
/**
* 音乐ID
*/
private Long musicId;
public String getSoundUrl() {
return soundUrl;
}
public void setSoundUrl(String soundUrl) {
this.soundUrl = soundUrl;
}
public String getFromType() {
return fromType;
}
public void setFromType(String fromType) {
this.fromType = fromType;
}
public String getBeforeText() {
return beforeText;
}
public void setBeforeText(String beforeText) {
this.beforeText = beforeText;
}
public String getAfterText() {
return afterText;
}
public void setAfterText(String afterText) {
this.afterText = afterText;
}
public Long getAppId() {
return appId;
}
public void setAppId(Long appId) {
this.appId = appId;
}
public Long getAdviserId() {
return adviserId;
}
public void setAdviserId(Long adviserId) {
this.adviserId = adviserId;
}
public Long getMusicId() {
return musicId;
}
public void setMusicId(Long musicId) {
this.musicId = musicId;
}
public List<SpeechDTO> getSpeechDTOs() {
return speechDTOs;
}
public void setSpeechDTOs(List<SpeechDTO> speechDTOs) {
this.speechDTOs = speechDTOs;
}
public String[] getBgms() {
return bgms;
}
public void setBgms(String[] bgms) {
this.bgms = bgms;
}
@Override
public String toString() {
return "DubbingDTO : " + JSONObject.toJSONString(this);
}
}
package com.pcloud.common.core.dto.dubbing;
import com.alibaba.fastjson.JSONObject;
import com.pcloud.common.core.dto.dubbing.AudioDTO;
import java.io.Serializable;
import java.util.List;
/**
* 绘本配音资源DTO
*
* @author:songx
* @date:2018年12月5日,上午10:07:26
*/
public class DubbingResultDTO implements Serializable {
/**
*
*/
private static final long serialVersionUID = 2458000180158610651L;
/**
* 来源类型
*/
private String fromType;
/**
* 语音文件
*/
private List<AudioDTO> speechs;
/**
* 混合音频
*/
private AudioDTO mixAudio;
/**
* 应用ID
*/
private Long appId;
/**
* 编辑ID
*/
private Long adviserId;
/**
* 音乐ID
*/
private Long musicId;
public String getFromType() {
return fromType;
}
public void setFromType(String fromType) {
this.fromType = fromType;
}
public Long getAppId() {
return appId;
}
public void setAppId(Long appId) {
this.appId = appId;
}
public Long getAdviserId() {
return adviserId;
}
public void setAdviserId(Long adviserId) {
this.adviserId = adviserId;
}
public Long getMusicId() {
return musicId;
}
public void setMusicId(Long musicId) {
this.musicId = musicId;
}
public List<AudioDTO> getSpeechs() {
return speechs;
}
public void setSpeechs(List<AudioDTO> speechs) {
this.speechs = speechs;
}
public AudioDTO getMixAudio() {
return mixAudio;
}
public void setMixAudio(AudioDTO mixAudio) {
this.mixAudio = mixAudio;
}
@Override
public String toString() {
return "DubbingResultDTO : " + JSONObject.toJSONString(this);
}
}
/**
*
*/
package com.pcloud.common.core.dto.dubbing;
import java.io.Serializable;
import com.alibaba.fastjson.JSONObject;
/**
*
* @author:songx
* @date:2018年12月5日,下午5:05:57
*/
public class SpeechDTO implements Serializable{
/**
*
*/
private static final long serialVersionUID = -5054460976926789378L;
/**
* 文本内容
*/
private String text;
/**
* id
*/
private int id;
public String getText() {
return text;
}
public void setText(String text) {
this.text = text;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
@Override
public String toString() {
return "SpeechDTO : " + JSONObject.toJSONString(this);
}
}
\ No newline at end of file
package com.pcloud.common.core.enums;
/**
* @描述:代办事务类型
* @作者:zhuyajie
* @创建时间:10:54 2018/10/31
* @版本:1.0
*/
public enum BacklogTypeEnum {
/**
* 应用
*/
APP("APP"),
/**
* 作品
*/
PRODUCT("PRODUCT");
private String value;
public String getValue() {
return value;
}
BacklogTypeEnum(String value) {
this.value = value;
}
}
...@@ -42,7 +42,17 @@ public enum TranscodeFromEnum { ...@@ -42,7 +42,17 @@ public enum TranscodeFromEnum {
/** /**
* 直播 * 直播
*/ */
LIVE_HOMEWORD("LIVE_HOMEWORD"); LIVE_HOMEWORD("LIVE_HOMEWORD"),
/**
* 音频
*/
AUDIOAPP_PDF("AUDIOAPP_PDF"),
/**
* 文件管理中心
*/
CONVERT_PDF("CONVERT_PDF");
/** /**
* 值 * 值
......
...@@ -9,7 +9,10 @@ import org.slf4j.LoggerFactory; ...@@ -9,7 +9,10 @@ import org.slf4j.LoggerFactory;
import org.springframework.http.HttpStatus; import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import org.springframework.http.converter.HttpMessageNotReadableException; import org.springframework.http.converter.HttpMessageNotReadableException;
import org.springframework.validation.BindingResult;
import org.springframework.validation.FieldError;
import org.springframework.web.HttpRequestMethodNotSupportedException; import org.springframework.web.HttpRequestMethodNotSupportedException;
import org.springframework.web.bind.MethodArgumentNotValidException;
import org.springframework.web.bind.ServletRequestBindingException; import org.springframework.web.bind.ServletRequestBindingException;
import org.springframework.web.bind.annotation.ControllerAdvice; import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.ExceptionHandler;
...@@ -22,6 +25,8 @@ import com.pcloud.common.permission.PermissionException; ...@@ -22,6 +25,8 @@ import com.pcloud.common.permission.PermissionException;
import feign.FeignException; import feign.FeignException;
import org.springframework.web.method.annotation.MethodArgumentTypeMismatchException; import org.springframework.web.method.annotation.MethodArgumentTypeMismatchException;
import java.util.List;
/** /**
* *
* @描述:异常集中处理 * @描述:异常集中处理
...@@ -92,6 +97,23 @@ public class GlobalExceptionHandler { ...@@ -92,6 +97,23 @@ public class GlobalExceptionHandler {
LOGGER.warn("【响应未结束】" + exception.getMessage(), exception); LOGGER.warn("【响应未结束】" + exception.getMessage(), exception);
return new ResponseEntity<>("响应未结束!", HttpStatus.OK); return new ResponseEntity<>("响应未结束!", HttpStatus.OK);
} }
else if (exception instanceof MethodArgumentNotValidException) {
LOGGER.info("【参数异常】" + exception.getMessage(), exception);
MethodArgumentNotValidException methodArgumentNotValidException = (MethodArgumentNotValidException) exception;
ResponseDto<Object> responseDto = new ResponseDto<>();
BindingResult bindingResult = methodArgumentNotValidException.getBindingResult();
String resultMessage = "参数异常:";
List<FieldError> fieldErrors = bindingResult.getFieldErrors();
for (int i = 0;i<fieldErrors.size();i++) {
if(fieldErrors.size()==1 || i == fieldErrors.size()-1){
resultMessage += fieldErrors.get(i).getDefaultMessage();
}else {
resultMessage += fieldErrors.get(i).getDefaultMessage() + ", ";
}
}
responseDto.setMessage(resultMessage);
return new ResponseEntity<>(responseDto, HttpStatus.OK);
}
// 业务异常 // 业务异常
else if (exception instanceof BizException) { else if (exception instanceof BizException) {
LOGGER.info("【业务异常】" + exception.getMessage(), exception); LOGGER.info("【业务异常】" + exception.getMessage(), exception);
......
...@@ -178,6 +178,10 @@ ...@@ -178,6 +178,10 @@
<artifactId>httpcore</artifactId> <artifactId>httpcore</artifactId>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpmime</artifactId>
</dependency>
<dependency>
<groupId>redis.clients</groupId> <groupId>redis.clients</groupId>
<artifactId>jedis</artifactId> <artifactId>jedis</artifactId>
</dependency> </dependency>
...@@ -291,13 +295,6 @@ ...@@ -291,13 +295,6 @@
<artifactId>aliyun-java-sdk-mts</artifactId> <artifactId>aliyun-java-sdk-mts</artifactId>
</dependency> </dependency>
<!-- solr add by gaop at 2018-4-23 11:33:47 -->
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-solr</artifactId>
</dependency>
<!-- end -->
<!-- Jackson Begin --> <!-- Jackson Begin -->
<dependency> <dependency>
<groupId>org.codehaus.jackson</groupId> <groupId>org.codehaus.jackson</groupId>
...@@ -387,6 +384,12 @@ ...@@ -387,6 +384,12 @@
<version>2.0</version> <version>2.0</version>
</dependency> </dependency>
<!-- util sdk -->
<dependency>
<groupId>com.dcg.sdk</groupId>
<artifactId>util-sdk</artifactId>
<version>1.0.0</version>
</dependency>
</dependencies> </dependencies>
</project> </project>
package com.pcloud.common.entity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
/**
* @author peidawei
* @version 1.0.0
* @package com.pcloud.common.entity
* @className BasePageRequestVO
* @description 分页请求VO基类
* @date 2018年11月29日 下午 14:46
*/
@ApiModel("分页请求VO基类")
public class BasePageRequestVO implements Serializable {
private static final long serialVersionUID = -4034188768789093041L;
@ApiModelProperty(hidden = true)
private Long userId;
@ApiModelProperty("每页多少条")
private Integer numPerPage;
@ApiModelProperty("当前页")
private Integer currentPage;
public Long getUserId() {
return userId;
}
public void setUserId(Long userId) {
this.userId = userId;
}
public Integer getNumPerPage() {
return numPerPage;
}
public void setNumPerPage(Integer numPerPage) {
this.numPerPage = numPerPage;
}
public Integer getCurrentPage() {
return currentPage;
}
public void setCurrentPage(Integer currentPage) {
this.currentPage = currentPage;
}
}
package com.pcloud.common.entity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
/**
* @author peidawei
* @version 1.0.0
* @package com.pcloud.common.entity
* @className BaseRequestVO
* @description 请求VO基类
* @date 2018年11月29日 下午 14:44
*/
@ApiModel("请求VO基类")
public class BaseRequestVO implements Serializable {
private static final long serialVersionUID = -1078697162056973900L;
@ApiModelProperty(hidden = true)
private Long userId;
public Long getUserId() {
return userId;
}
public void setUserId(Long userId) {
this.userId = userId;
}
}
...@@ -54,7 +54,8 @@ public enum AppTypeEnum { ...@@ -54,7 +54,8 @@ public enum AppTypeEnum {
WISH("WISH"),// 愿望单 WISH("WISH"),// 愿望单
LIVEAPP("LIVEAPP"), //直播3.0 LIVEAPP("LIVEAPP"), //直播3.0
TASTETEST("TASTETEST"), //趣味测试 TASTETEST("TASTETEST"), //趣味测试
VIDEO_CLASSIC("VIDEO_CLASSIC"); //经典版视频 VIDEO_CLASSIC("VIDEO_CLASSIC"), //经典版视频
AUDIO_MAGIC("AUDIO_MAGIC"); //音频伴读魔法箱
/** /**
* 枚举转换 * 枚举转换
......
package com.pcloud.common.enums;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
/**
* @author lily
* @date 2018/12/6 11:36
*/
public enum QrcodeTypeEnum {
MAGIC("AUDIO_MAGIC", 0, "听画书", "AUDIO_MAGIC", "APP", true),
REWARD("CLOCK", 1, "打卡书", "REWARD", "APP", true),
PREVIEW_APP("VIDEO", 2, "预习课", "PREVIEW", "APP", true),
PREVIEW_PRODUCT("VIDEO_SCHEDULE", 3, "预习课", "PREVIEW", "PRODUCT", true),
ZSCORE("ZSCORE", 4, "查分书", "ZSCORE", "APP", true);
/**
* 类型
*/
private String type;
private Integer value;
private String description;
private String scene;
private String typeCode;
private Boolean isNeedCover;
public static final Map<String, QrcodeTypeEnum> QRCODE_TYPE_MAP = new HashMap<>();
QrcodeTypeEnum(String type, Integer value, String description, String scene, String typeCode, Boolean isNeedCover) {
this.type = type;
this.value = value;
this.description = description;
this.scene = scene;
this.typeCode = typeCode;
this.isNeedCover = isNeedCover;
}
static {
Arrays.asList(values()).forEach((m) -> {
QRCODE_TYPE_MAP.put(m.type, m);
});
}
public String getType() {
return type;
}
public Integer getValue() {
return value;
}
public String getDescription() {
return description;
}
public String getScene() {
return scene;
}
public String getTypeCode() {
return typeCode;
}
public Boolean getNeedCover() {
return isNeedCover;
}
}
...@@ -14,9 +14,12 @@ import javax.imageio.ImageIO; ...@@ -14,9 +14,12 @@ import javax.imageio.ImageIO;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import com.dcg.util.StringUtils;
import com.itextpdf.text.Image; import com.itextpdf.text.Image;
import com.pcloud.common.constant.AliyunConstant; import com.pcloud.common.constant.AliyunConstant;
import com.pcloud.common.constant.FilePathConst;
import com.pcloud.common.constant.ImageConstant; import com.pcloud.common.constant.ImageConstant;
import com.pcloud.common.entity.UploadResultInfo;
import com.pcloud.common.enums.ImageEnum; import com.pcloud.common.enums.ImageEnum;
import com.pcloud.common.exceptions.BizException; import com.pcloud.common.exceptions.BizException;
import com.pcloud.common.exceptions.FileException; import com.pcloud.common.exceptions.FileException;
...@@ -688,4 +691,37 @@ public class ImageUtils { ...@@ -688,4 +691,37 @@ public class ImageUtils {
return size; return size;
} }
/**
* 上传的图片转换成webpO
*
* @param localFilePath
* 源文件的本地路径
* @param httpUrl
* 源文件上传后的路径,主要用于子文件上传时对应http文件路径
*/
public static UploadResultInfo toWebp(String fileUrl) {
String fileNameAll = FileUtils.getFileNameAll(fileUrl);
String localFilePath = FilePathConst.DOWNLOAD_PATH + fileNameAll;
FileUtils.downloadFileFromUrl(fileUrl, localFilePath);
String tragetPath = null;
try {
tragetPath = com.dcg.util.ImageUtils.transcodeToWebp(localFilePath, 80);
} catch (Exception e) {
LOGGER.error("【IMAGE】图片转换成webp失败:" + e.getMessage(), e);
return null;
}
if (StringUtils.isEmpty(tragetPath)) {
return null;
}
try {
return OssUtils.uploadLocalFile4Child(tragetPath, fileUrl);
} catch (Exception e) {
LOGGER.error("【IMAGE】图片转换成webp,上传失败:" + e.getMessage(), e);
} finally {
FileUtils.deleteFile(localFilePath);
FileUtils.deleteFile(tragetPath);
}
return null;
}
} }
...@@ -213,7 +213,7 @@ public class PictureUtil { ...@@ -213,7 +213,7 @@ public class PictureUtil {
header.put("Content-Type", "application/json"); header.put("Content-Type", "application/json");
Map<String,String>param = new HashMap<>(); Map<String,String>param = new HashMap<>();
param.put("htmlCode",html); param.put("htmlCode",html);
String postResult = HttpKit.post("http://192.168.92.111:8214/transcode/htm2img/jpg", JSON.toJSONString(param)); String postResult = HttpKit.post("http://192.168.1.7:8216/transcode/htm2img/jpg", JSON.toJSONString(param));
Map map = JSONUtils.jsonToMap(postResult, String.class, String.class); Map map = JSONUtils.jsonToMap(postResult, String.class, String.class);
String pic = (String)map.get("data"); String pic = (String)map.get("data");
BufferedImage bookPicImage = ImageIO.read(new URL(pic)); BufferedImage bookPicImage = ImageIO.read(new URL(pic));
......
...@@ -21,6 +21,7 @@ import java.util.Map; ...@@ -21,6 +21,7 @@ import java.util.Map;
import javax.imageio.ImageIO; import javax.imageio.ImageIO;
import javax.swing.ImageIcon; import javax.swing.ImageIcon;
import com.pcloud.common.utils.cache.redis.JedisClusterUtils;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
...@@ -215,6 +216,42 @@ public class QrcodeUtils { ...@@ -215,6 +216,42 @@ public class QrcodeUtils {
} }
/** /**
* 创建二维码
*
* @param url
* 二维码响应地址
* @return
* @throws Exception
*/
public static String createWithMargin(String url, Integer marginNum) throws BizException {
String key = "createWithMargin:"+url+"_"+marginNum;
if(JedisClusterUtils.exists(key)){
String s = JedisClusterUtils.get(key);
return s;
}else {
LOGGER.info("【二维码】创建二维码,<START>.[url]=" + url);
Map<EncodeHintType, Object> hints = new HashMap<EncodeHintType, Object>();
hints.put(EncodeHintType.CHARACTER_SET, "UTF-8");
hints.put(EncodeHintType.ERROR_CORRECTION, level);
hints.put(EncodeHintType.MARGIN, marginNum); // 设置白边
try {
// 生成矩阵
BitMatrix bitMatrix = new MultiFormatWriter().encode(url, BarcodeFormat.QR_CODE, ImageConstant.QRCODE_WITH,
ImageConstant.QRCODE_HEIGHT, hints);
BufferedImage bufferedImage = toBufferedImage(bitMatrix, onColor);
bufferedImage.flush();
String s = uploadImage(bufferedImage);
JedisClusterUtils.set(key,s,24*3600);
return s;
} catch (Exception e) {
LOGGER.error("【二维码】创建二维码失败,<ERROR>:" + e.getMessage(), e);
throw new FileException(FileException.FILE_UPLOAD_FAILURE, "创建二维码失败");
}
}
}
/**
* 创建带颜色的二维码 * 创建带颜色的二维码
* @param url * @param url
* @param onColor * @param onColor
......
...@@ -17,43 +17,63 @@ import com.pcloud.common.page.PageBeanNew; ...@@ -17,43 +17,63 @@ import com.pcloud.common.page.PageBeanNew;
*/ */
public class ResultUtils { public class ResultUtils {
/** /**
* 集合查询结果判断 * 单个对象实例化
* *
* @param lists * @param t
* @return * @param clazz
*/ * @return
public static <T> List<T> list(List<T> lists) { * @author songx
if (!ListUtils.isEmpty(lists)) { * @date 2019年1月14日,下午7:32:35
return lists; */
} public static <T> T object(T t, Class<T> clazz) {
return Lists.newArrayList(); if (t == null) {
} return null;
}
/** try {
* map查询结果判断 return clazz.newInstance();
* } catch (Exception e) {
* @param lists }
* @return return null;
*/ }
public static <K, V> Map<K, V> map(Map<K, V> map) {
if (!MapUtils.isEmpty(map)) { /**
return map; * 集合查询结果判断
} *
return Maps.newHashMap(); * @param lists
} * @return
*/
/** public static <T> List<T> list(List<T> lists) {
* 分页查询结果判断 if (!ListUtils.isEmpty(lists)) {
* return lists;
* @param pageBeanNew }
* @return return Lists.newArrayList();
*/ }
public static <T> PageBeanNew<T> pageBeanNew(PageBeanNew<T> pageBeanNew, Integer currentPage, Integer numPerPage) {
if (pageBeanNew != null) { /**
return pageBeanNew; * map查询结果判断
} *
return new PageBeanNew<T>(currentPage, numPerPage, 0, Lists.newArrayList()); * @param lists
} * @return
*/
public static <K, V> Map<K, V> map(Map<K, V> map) {
if (!MapUtils.isEmpty(map)) {
return map;
}
return Maps.newHashMap();
}
/**
* 分页查询结果判断
*
* @param pageBeanNew
* @return
*/
public static <T> PageBeanNew<T> pageBeanNew(PageBeanNew<T> pageBeanNew, Integer currentPage, Integer numPerPage) {
if (pageBeanNew != null) {
return pageBeanNew;
}
return new PageBeanNew<T>(currentPage, numPerPage, 0, Lists.newArrayList());
}
} }
This source diff could not be displayed because it is too large. You can view the blob instead.
...@@ -12,6 +12,7 @@ import org.slf4j.Logger; ...@@ -12,6 +12,7 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import com.pcloud.common.exceptions.BizException; import com.pcloud.common.exceptions.BizException;
import com.pcloud.common.utils.NumberUtil;
import com.pcloud.common.utils.string.StringUtil; import com.pcloud.common.utils.string.StringUtil;
/** /**
...@@ -125,25 +126,25 @@ public class Cookie { ...@@ -125,25 +126,25 @@ public class Cookie {
String[] channel = userInfoArry[i].split("="); String[] channel = userInfoArry[i].split("=");
String channelId = channel[channel.length - 1]; String channelId = channel[channel.length - 1];
userInfos.put("channelId", StringUtil.isEmpty(channelId) || "undefined".equalsIgnoreCase(channelId) userInfos.put("channelId", StringUtil.isEmpty(channelId) || "undefined".equalsIgnoreCase(channelId)
|| "null".equalsIgnoreCase(channelId) ? null : Long.valueOf(channelId)); || "null".equalsIgnoreCase(channelId) ? null : NumberUtil.toLong(channelId));
} }
if (userInfoArry[i].contains("officialAccountsId")) { if (userInfoArry[i].contains("officialAccountsId")) {
String[] wechat = userInfoArry[i].split("="); String[] wechat = userInfoArry[i].split("=");
String officialAccountsId = wechat[wechat.length - 1]; String officialAccountsId = wechat[wechat.length - 1];
userInfos.put("officialAccountsId", StringUtil.isEmpty(officialAccountsId) || "undefined".equalsIgnoreCase(officialAccountsId) userInfos.put("officialAccountsId", StringUtil.isEmpty(officialAccountsId) || "undefined".equalsIgnoreCase(officialAccountsId)
|| "null".equalsIgnoreCase(officialAccountsId) ? null : Long.valueOf(officialAccountsId)); || "null".equalsIgnoreCase(officialAccountsId) ? null : NumberUtil.toLong(officialAccountsId));
} }
if (userInfoArry[i].contains("wechatUserId")) { if (userInfoArry[i].contains("wechatUserId")) {
String[] user = userInfoArry[i].split("="); String[] user = userInfoArry[i].split("=");
String wechatUserId = user[user.length - 1]; String wechatUserId = user[user.length - 1];
userInfos.put("wechatUserId", StringUtil.isEmpty(wechatUserId) || "undefined".equalsIgnoreCase(wechatUserId) userInfos.put("wechatUserId", StringUtil.isEmpty(wechatUserId) || "undefined".equalsIgnoreCase(wechatUserId)
|| "null".equalsIgnoreCase(wechatUserId) ? null : Long.valueOf(wechatUserId)); || "null".equalsIgnoreCase(wechatUserId) ? null : NumberUtil.toLong(wechatUserId));
} }
if (userInfoArry[i].contains("partyId")) { if (userInfoArry[i].contains("partyId")) {
String[] party = userInfoArry[i].split("="); String[] party = userInfoArry[i].split("=");
String partyId = party[party.length - 1]; String partyId = party[party.length - 1];
userInfos.put("partyId", StringUtil.isEmpty(partyId) || "undefined".equalsIgnoreCase(partyId) || "null".equalsIgnoreCase(partyId) userInfos.put("partyId", StringUtil.isEmpty(partyId) || "undefined".equalsIgnoreCase(partyId) || "null".equalsIgnoreCase(partyId)
? null : Long.valueOf(partyId)); ? null : NumberUtil.toLong(partyId));
} }
// editBy TC cookie里面需要带上顾问,systemCode,是否系统,场景值 // editBy TC cookie里面需要带上顾问,systemCode,是否系统,场景值
// modify by songx at 2017-05-17 如果值为undefined或者null直接跳过 // modify by songx at 2017-05-17 如果值为undefined或者null直接跳过
...@@ -151,7 +152,7 @@ public class Cookie { ...@@ -151,7 +152,7 @@ public class Cookie {
String[] adviser = userInfoArry[i].split("="); String[] adviser = userInfoArry[i].split("=");
String adviserId = adviser[adviser.length - 1]; String adviserId = adviser[adviser.length - 1];
userInfos.put("adviserId", StringUtil.isEmpty(adviserId) || "undefined".equalsIgnoreCase(adviserId) || "null".equalsIgnoreCase(adviserId) userInfos.put("adviserId", StringUtil.isEmpty(adviserId) || "undefined".equalsIgnoreCase(adviserId) || "null".equalsIgnoreCase(adviserId)
? null : Long.valueOf(adviserId)); ? null : NumberUtil.toLong(adviserId));
} }
if (userInfoArry[i].contains("systemCode")) { if (userInfoArry[i].contains("systemCode")) {
String[] systemCode = userInfoArry[i].split("="); String[] systemCode = userInfoArry[i].split("=");
...@@ -168,25 +169,25 @@ public class Cookie { ...@@ -168,25 +169,25 @@ public class Cookie {
String[] scene = userInfoArry[i].split("="); String[] scene = userInfoArry[i].split("=");
String sceneId = scene[scene.length - 1]; String sceneId = scene[scene.length - 1];
userInfos.put("sceneId", StringUtil.isEmpty(sceneId) || "undefined".equalsIgnoreCase(sceneId) || "null".equalsIgnoreCase(sceneId) ? null userInfos.put("sceneId", StringUtil.isEmpty(sceneId) || "undefined".equalsIgnoreCase(sceneId) || "null".equalsIgnoreCase(sceneId) ? null
: Long.valueOf(sceneId)); : NumberUtil.toLong(sceneId));
} }
if (userInfoArry[i].contains("userId")) { if (userInfoArry[i].contains("userId")) {
String[] userLogin = userInfoArry[i].split("="); String[] userLogin = userInfoArry[i].split("=");
String userId = userLogin[userLogin.length - 1]; String userId = userLogin[userLogin.length - 1];
userInfos.put("userId", StringUtil.isEmpty(userId) || "undefined".equalsIgnoreCase(userId) || "null".equalsIgnoreCase(userId) ? null userInfos.put("userId", StringUtil.isEmpty(userId) || "undefined".equalsIgnoreCase(userId) || "null".equalsIgnoreCase(userId) ? null
: Long.valueOf(userId)); : NumberUtil.toLong(userId));
} }
if (userInfoArry[i].contains("merchantMemberId")) { if (userInfoArry[i].contains("merchantMemberId")) {
String[] merchant = userInfoArry[i].split("="); String[] merchant = userInfoArry[i].split("=");
String merchantMemberId = merchant[merchant.length - 1]; String merchantMemberId = merchant[merchant.length - 1];
userInfos.put("merchantMemberId", StringUtil.isEmpty(merchantMemberId) || "undefined".equalsIgnoreCase(merchantMemberId) userInfos.put("merchantMemberId", StringUtil.isEmpty(merchantMemberId) || "undefined".equalsIgnoreCase(merchantMemberId)
|| "null".equalsIgnoreCase(merchantMemberId) ? null : Long.valueOf(merchantMemberId)); || "null".equalsIgnoreCase(merchantMemberId) ? null : NumberUtil.toLong(merchantMemberId));
} }
if (userInfoArry[i].contains("agentMemberId")) { if (userInfoArry[i].contains("agentMemberId")) {
String[] merchant = userInfoArry[i].split("="); String[] merchant = userInfoArry[i].split("=");
String agentMemberId = merchant[merchant.length - 1]; String agentMemberId = merchant[merchant.length - 1];
userInfos.put("agentMemberId", StringUtil.isEmpty(agentMemberId) || "undefined".equalsIgnoreCase(agentMemberId) userInfos.put("agentMemberId", StringUtil.isEmpty(agentMemberId) || "undefined".equalsIgnoreCase(agentMemberId)
|| "null".equalsIgnoreCase(agentMemberId) ? null : Long.valueOf(agentMemberId)); || "null".equalsIgnoreCase(agentMemberId) ? null : NumberUtil.toLong(agentMemberId));
} }
// add by gaop // add by gaop
if (userInfoArry[i].contains(PREVIEW_TYPE)) { if (userInfoArry[i].contains(PREVIEW_TYPE)) {
...@@ -205,13 +206,13 @@ public class Cookie { ...@@ -205,13 +206,13 @@ public class Cookie {
String[] firstTD = userInfoArry[i].split("="); String[] firstTD = userInfoArry[i].split("=");
String code = firstTD[firstTD.length - 1]; String code = firstTD[firstTD.length - 1];
userInfos.put(FIRST_TD, StringUtil.isEmpty(code) || "undefined".equalsIgnoreCase(code) || "null".equalsIgnoreCase(code) ? null userInfos.put(FIRST_TD, StringUtil.isEmpty(code) || "undefined".equalsIgnoreCase(code) || "null".equalsIgnoreCase(code) ? null
: Long.valueOf(code)); : NumberUtil.toLong(code));
} }
if (userInfoArry[i].contains(SECOND_TD)) { if (userInfoArry[i].contains(SECOND_TD)) {
String[] secondTD = userInfoArry[i].split("="); String[] secondTD = userInfoArry[i].split("=");
String code = secondTD[secondTD.length - 1]; String code = secondTD[secondTD.length - 1];
userInfos.put(SECOND_TD, StringUtil.isEmpty(code) || "undefined".equalsIgnoreCase(code) || "null".equalsIgnoreCase(code) ? null userInfos.put(SECOND_TD, StringUtil.isEmpty(code) || "undefined".equalsIgnoreCase(code) || "null".equalsIgnoreCase(code) ? null
: Long.valueOf(code)); : NumberUtil.toLong(code));
} }
} }
return userInfos; return userInfos;
...@@ -226,7 +227,7 @@ public class Cookie { ...@@ -226,7 +227,7 @@ public class Cookie {
*/ */
public static Long getId(String userInfo, String type) throws BizException { public static Long getId(String userInfo, String type) throws BizException {
String value = getString(userInfo, type); String value = getString(userInfo, type);
return StringUtil.isEmpty(value) || "undefined".equalsIgnoreCase(value) || "null".equalsIgnoreCase(value) ? null : Long.valueOf(value); return StringUtil.isEmpty(value) || "undefined".equalsIgnoreCase(value) || "null".equalsIgnoreCase(value) ? null : NumberUtil.toLong(value);
} }
/** /**
......
...@@ -127,6 +127,47 @@ public class WordDataExportor { ...@@ -127,6 +127,47 @@ public class WordDataExportor {
} }
/** /**
* 生成word
* @param dataMap
* @param templateName
* @return
* @author linweibin
* @date 2017年5月22日 下午5:22:38
*/
@SuppressWarnings("deprecation")
public static void generateWord(Class clazz, Map<String, Object> dataMap, String templateName, File tmpdir, String fileName) {
logger.info("开始生成word+++");
try {
// 创建配置实例
Configuration configuration = new Configuration();
// 设置编码
configuration.setDefaultEncoding("UTF-8");
// 获取template文件路径
configuration.setClassForTemplateLoading(clazz, "/template");
// 获取模板
Template template = configuration.getTemplate(templateName);
// 输出文件
File outFile = new File(tmpdir, fileName);
// 将模板和数据模型合并生成文件
Writer out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(outFile), "UTF-8"));
// 生成文件
template.process(dataMap, out);
logger.info("生成word+++成功");
// 关闭流
out.flush();
out.close();
} catch (Exception e) {
logger.error("生成word异常+++" + e.getMessage(), e);
}
}
/**
* 生成随机文件名 * 生成随机文件名
* @return * @return
* @author linweibin * @author linweibin
......
...@@ -10,8 +10,6 @@ import org.slf4j.LoggerFactory; ...@@ -10,8 +10,6 @@ import org.slf4j.LoggerFactory;
import com.pcloud.common.utils.string.StringUtil; import com.pcloud.common.utils.string.StringUtil;
/** /**
* MD5 * MD5
*/ */
...@@ -66,9 +64,22 @@ public class MD5 { ...@@ -66,9 +64,22 @@ public class MD5 {
else else
md5StrBuff.append(Integer.toHexString(0xFF & byteArray[i])); md5StrBuff.append(Integer.toHexString(0xFF & byteArray[i]));
} }
return md5StrBuff.toString().toUpperCase(); return md5StrBuff.toString();
} }
/**
* MD5字符串,全大写
*
* @param str
* @return
*/
public static String getMD5StrUpper(String str) {
if (StringUtil.isEmpty(str)) {
return str;
}
return getMD5Str(str).toUpperCase();
}
/** /**
* MD5字符串,全小写 * MD5字符串,全小写
* *
...@@ -111,9 +122,9 @@ public class MD5 { ...@@ -111,9 +122,9 @@ public class MD5 {
return md5StrBuff.toString().toUpperCase(); return md5StrBuff.toString().toUpperCase();
} }
public static void main(String[] args){ public static void main(String[] args) {
System.out.println(MD5.getMD5Str("chenjianhua")); System.out.println(MD5.getMD5Str("chenjianhua"));
System.out.println(DigestUtils.md5Hex("chenjianhua").toUpperCase()); System.out.println(DigestUtils.md5Hex("chenjianhua").toUpperCase());
} }
} }
...@@ -613,7 +613,26 @@ public class StringTools { ...@@ -613,7 +613,26 @@ public class StringTools {
* @param array * @param array
* @return * @return
*/ */
public static boolean equalss(String str, String[] array) { public static boolean equalss(String str, String... array) {
if (StringUtil.isEmpty(str) || array == null) {
return false;
}
for (String s : array) {
if (str.equals(s)) {
return true;
}
}
return false;
}
/**
* 判断字符是否在数组中存在。如果数组为null则返回false
*
* @param str
* @param array
* @return
*/
public static boolean equalss(String str, List<String> array) {
if (StringUtil.isEmpty(str) || array == null) { if (StringUtil.isEmpty(str) || array == null) {
return false; return false;
} }
......
...@@ -120,8 +120,8 @@ public class CompressUtils { ...@@ -120,8 +120,8 @@ public class CompressUtils {
if (ListUtils.isEmpty(fileUrlList)) { if (ListUtils.isEmpty(fileUrlList)) {
return null; return null;
} }
zipName = FileUtils.formatName(zipName); String zipNameFormat = FileUtils.formatName(zipName);
String tempZipName = zipName + "_" + LocalDateUtils.getYmdhmss(); String tempZipName = zipNameFormat + "_" + LocalDateUtils.getYmdhmss();
String zipFilePath = ZIP_FILE_PATH + tempZipName + ".zip"; String zipFilePath = ZIP_FILE_PATH + tempZipName + ".zip";
// 检查临时文件夹是否存在,不存在就创建 // 检查临时文件夹是否存在,不存在就创建
String fileFolderPath = FILE_LOCAL_PATH + tempZipName; String fileFolderPath = FILE_LOCAL_PATH + tempZipName;
...@@ -141,7 +141,7 @@ public class CompressUtils { ...@@ -141,7 +141,7 @@ public class CompressUtils {
FileUtils.isDir(ZIP_FILE_PATH); FileUtils.isDir(ZIP_FILE_PATH);
CompressUtils.zip(fileFolderPath, zipFilePath); CompressUtils.zip(fileFolderPath, zipFilePath);
// 上传文件到服务器中 // 上传文件到服务器中
uploadResultInfo = OssUtils.uploadLocalFile4CustomName(zipFilePath, zipName); uploadResultInfo = OssUtils.uploadLocalFile4CustomName(zipFilePath, zipNameFormat);
uploadResultInfo.setFileName(zipName); uploadResultInfo.setFileName(zipName);
} catch (Exception e) { } catch (Exception e) {
LOGGER.error("【压缩】压缩失败,<ERROR>:" + e.getMessage(), e); LOGGER.error("【压缩】压缩失败,<ERROR>:" + e.getMessage(), e);
......
/**
*
*/
package com.pcloud.common.vo;
import java.io.Serializable;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonInclude.Include;
/**
* VO父类
*
* @author:songx
* @date:2019年1月14日,下午8:53:01
*/
@JsonInclude(value = Include.NON_NULL)
public class BaseVO implements Serializable {
/**
*
*/
private static final long serialVersionUID = -5943734920212204836L;
}
<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">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.pcloud.common</groupId>
<artifactId>pcloud-common-parent</artifactId>
<version>2.1.0-SNAPSHOT</version>
</parent>
<artifactId>pcloud-solr</artifactId>
<packaging>jar</packaging>
<version>${pcloud-solr.version}</version>
<name>pcloud-solr</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>com.pcloud.common</groupId>
<artifactId>pcloud-common-config</artifactId>
<version>${pcloud-common-config.version}</version>
</dependency>
<!-- solr add by gaop at 2018-4-23 11:33:47 -->
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-solr</artifactId>
<version>${spring.data.solr.version}</version>
</dependency>
<!-- Spring Cloud Begin -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
</dependency>
<!-- Spring Cloud End -->
<!-- Common Dependency Begin -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.18</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.4</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.38</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-collections4</artifactId>
<version>4.1</version>
</dependency>
<!-- Common Dependency End -->
</dependencies>
</project>
package com.pcloud.common.utils.solr; package com.pcloud.solr;
import java.io.Serializable; import java.io.Serializable;
import java.util.Calendar; import java.util.Calendar;
......
package com.pcloud.common.utils.solr; package com.pcloud.solr;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
......
package com.pcloud.common.utils.solr; package com.pcloud.solr;
import java.io.Serializable; import java.io.Serializable;
import java.util.List; import java.util.List;
...@@ -8,7 +8,7 @@ import java.util.List; ...@@ -8,7 +8,7 @@ import java.util.List;
* @author PENG * @author PENG
* @date 2018/4/24 * @date 2018/4/24
*/ */
public class SolrResult implements Serializable { public class SolrResult<T> implements Serializable {
private static final long serialVersionUID = 1195918725820896691L; private static final long serialVersionUID = 1195918725820896691L;
...@@ -25,7 +25,7 @@ public class SolrResult implements Serializable { ...@@ -25,7 +25,7 @@ public class SolrResult implements Serializable {
/** /**
* 查询结果列表 * 查询结果列表
*/ */
private List<SolrDto> list; private List<T> list;
public Integer getTotalCount() { public Integer getTotalCount() {
return totalCount; return totalCount;
...@@ -43,11 +43,11 @@ public class SolrResult implements Serializable { ...@@ -43,11 +43,11 @@ public class SolrResult implements Serializable {
this.maxScore = maxScore; this.maxScore = maxScore;
} }
public List<SolrDto> getList() { public List<T> getList() {
return list; return list;
} }
public void setList(List<SolrDto> list) { public void setList(List<T> list) {
this.list = list; this.list = list;
} }
......
...@@ -18,6 +18,7 @@ ...@@ -18,6 +18,7 @@
<module>pcloud-common-config</module> <module>pcloud-common-config</module>
<module>pcloud-common</module> <module>pcloud-common</module>
<module>pcloud-common-core</module> <module>pcloud-common-core</module>
<module>pcloud-solr</module>
</modules> </modules>
<packaging>pom</packaging> <packaging>pom</packaging>
...@@ -47,6 +48,7 @@ ...@@ -47,6 +48,7 @@
<pcloud-common.version>2.1.0-RELEASE</pcloud-common.version> <pcloud-common.version>2.1.0-RELEASE</pcloud-common.version>
<pcloud-common-config.version>2.1.0-RELEASE</pcloud-common-config.version> <pcloud-common-config.version>2.1.0-RELEASE</pcloud-common-config.version>
<pcloud-common-core.version>2.1.0-RELEASE</pcloud-common-core.version> <pcloud-common-core.version>2.1.0-RELEASE</pcloud-common-core.version>
<pcloud-solr.version>2.1.0-RELEASE</pcloud-solr.version>
</properties> </properties>
</profile> </profile>
<!-- 压测环境 --> <!-- 压测环境 -->
...@@ -68,6 +70,7 @@ ...@@ -68,6 +70,7 @@
<pcloud-common.version>2.1.0-RELEASE</pcloud-common.version> <pcloud-common.version>2.1.0-RELEASE</pcloud-common.version>
<pcloud-common-config.version>2.1.0-RELEASE</pcloud-common-config.version> <pcloud-common-config.version>2.1.0-RELEASE</pcloud-common-config.version>
<pcloud-common-core.version>2.1.0-RELEASE</pcloud-common-core.version> <pcloud-common-core.version>2.1.0-RELEASE</pcloud-common-core.version>
<pcloud-solr.version>2.1.0-RELEASE</pcloud-solr.version>
</properties> </properties>
</profile> </profile>
<!-- 生产环境 RAYS --> <!-- 生产环境 RAYS -->
...@@ -89,6 +92,7 @@ ...@@ -89,6 +92,7 @@
<pcloud-common.version>2.1.1-RELEASE</pcloud-common.version> <pcloud-common.version>2.1.1-RELEASE</pcloud-common.version>
<pcloud-common-config.version>2.1.1-RELEASE</pcloud-common-config.version> <pcloud-common-config.version>2.1.1-RELEASE</pcloud-common-config.version>
<pcloud-common-core.version>2.1.1-RELEASE</pcloud-common-core.version> <pcloud-common-core.version>2.1.1-RELEASE</pcloud-common-core.version>
<pcloud-solr.version>2.1.1-RELEASE</pcloud-solr.version>
</properties> </properties>
</profile> </profile>
</profiles> </profiles>
...@@ -227,6 +231,11 @@ ...@@ -227,6 +231,11 @@
<version>4.4.6</version> <version>4.4.6</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpmime</artifactId>
<version>4.5.3</version>
</dependency>
<dependency>
<groupId>redis.clients</groupId> <groupId>redis.clients</groupId>
<artifactId>jedis</artifactId> <artifactId>jedis</artifactId>
<version>2.9.0</version> <version>2.9.0</version>
...@@ -303,13 +312,6 @@ ...@@ -303,13 +312,6 @@
</dependency> </dependency>
<!-- end --> <!-- end -->
<!-- solr add by gaop at 2018-4-23 11:33:47 -->
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-solr</artifactId>
<version>${spring.data.solr.version}</version>
</dependency>
<!-- Jackson Begin --> <!-- Jackson Begin -->
<dependency> <dependency>
<groupId>org.codehaus.jackson</groupId> <groupId>org.codehaus.jackson</groupId>
......
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