Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
M
midjourney-proxy
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
徐少华
midjourney-proxy
Commits
fa773c80
Commit
fa773c80
authored
Jul 08, 2019
by
朱亚洁
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
广告位详情
parent
1511139c
Hide whitespace changes
Inline
Side-by-side
Showing
41 changed files
with
3659 additions
and
24 deletions
+3659
-24
BookDto.java
...-book/src/main/java/com/pcloud/book/book/dto/BookDto.java
+30
-2
BookApplication.java
...e-book/src/main/java/com/pcloud/book/BookApplication.java
+6
-0
AdvertisingSpaceBiz.java
.../com/pcloud/book/advertising/biz/AdvertisingSpaceBiz.java
+23
-0
BmBiz.java
.../src/main/java/com/pcloud/book/advertising/biz/BmBiz.java
+113
-0
AdvertisingSpaceBizImpl.java
...ud/book/advertising/biz/impl/AdvertisingSpaceBizImpl.java
+301
-11
BmBizImpl.java
.../java/com/pcloud/book/advertising/biz/impl/BmBizImpl.java
+500
-0
AdvertisingSpaceDao.java
.../com/pcloud/book/advertising/dao/AdvertisingSpaceDao.java
+22
-2
BmOptionDao.java
...ain/java/com/pcloud/book/advertising/dao/BmOptionDao.java
+36
-0
BmOptionItemDao.java
...java/com/pcloud/book/advertising/dao/BmOptionItemDao.java
+26
-0
BmRegisterDao.java
...n/java/com/pcloud/book/advertising/dao/BmRegisterDao.java
+54
-0
BmRegisterItemDao.java
...va/com/pcloud/book/advertising/dao/BmRegisterItemDao.java
+13
-0
AdvertisingSpaceDaoImpl.java
...ud/book/advertising/dao/impl/AdvertisingSpaceDaoImpl.java
+15
-0
BmOptionDaoImpl.java
...com/pcloud/book/advertising/dao/impl/BmOptionDaoImpl.java
+33
-0
BmOptionItemDaoImpl.java
...pcloud/book/advertising/dao/impl/BmOptionItemDaoImpl.java
+30
-0
BmRegisterDaoImpl.java
...m/pcloud/book/advertising/dao/impl/BmRegisterDaoImpl.java
+56
-0
BmRegisterItemDaoImpl.java
...loud/book/advertising/dao/impl/BmRegisterItemDaoImpl.java
+17
-0
AdvertisingMasterDTO.java
...com/pcloud/book/advertising/dto/AdvertisingMasterDTO.java
+29
-1
AdvertisingSpaceDTO.java
.../com/pcloud/book/advertising/dto/AdvertisingSpaceDTO.java
+280
-1
BmRegisterDTO.java
...n/java/com/pcloud/book/advertising/dto/BmRegisterDTO.java
+113
-0
BmRegisterItemDTO.java
...va/com/pcloud/book/advertising/dto/BmRegisterItemDTO.java
+76
-0
OptionType.java
...main/java/com/pcloud/book/advertising/dto/OptionType.java
+55
-0
AdvertisingBmOption.java
...m/pcloud/book/advertising/entity/AdvertisingBmOption.java
+178
-0
AdvertisingBmOptionItem.java
...loud/book/advertising/entity/AdvertisingBmOptionItem.java
+125
-0
AdvertisingBmRegister.java
...pcloud/book/advertising/entity/AdvertisingBmRegister.java
+102
-0
AdvertisingBmRegisterItem.java
...ud/book/advertising/entity/AdvertisingBmRegisterItem.java
+127
-0
AdvertisingSpace.java
.../com/pcloud/book/advertising/entity/AdvertisingSpace.java
+253
-1
AdDetailModeEnum.java
...a/com/pcloud/book/advertising/enums/AdDetailModeEnum.java
+35
-0
SettlementMethodEnum.java
...m/pcloud/book/advertising/enums/SettlementMethodEnum.java
+1
-1
AdvertisingSpaceFacade.java
...cloud/book/advertising/facade/AdvertisingSpaceFacade.java
+17
-0
BmFacade.java
...ain/java/com/pcloud/book/advertising/facade/BmFacade.java
+104
-0
AdvertisingSpaceFacadeImpl.java
...k/advertising/facade/impl/AdvertisingSpaceFacadeImpl.java
+13
-0
BmFacadeImpl.java
...com/pcloud/book/advertising/facade/impl/BmFacadeImpl.java
+110
-0
WechatGroupConsr.java
...om/pcloud/book/consumer/wechatgroup/WechatGroupConsr.java
+19
-0
ConvertFileListener.java
...in/java/com/pcloud/book/mq/topic/ConvertFileListener.java
+142
-0
ExcelUtils.java
...src/main/java/com/pcloud/book/util/common/ExcelUtils.java
+90
-0
AdvertisingBmOptionItemMapper.xml
...rces/mapper/advertising/AdvertisingBmOptionItemMapper.xml
+49
-0
AdvertisingBmOptionMapper.xml
...esources/mapper/advertising/AdvertisingBmOptionMapper.xml
+90
-0
AdvertisingBmRegisterItemMapper.xml
...es/mapper/advertising/AdvertisingBmRegisterItemMapper.xml
+55
-0
AdvertisingBmRegisterMapper.xml
...ources/mapper/advertising/AdvertisingBmRegisterMapper.xml
+99
-0
AdvertisingIncomeDailyMapper.xml
...urces/mapper/advertising/AdvertisingIncomeDailyMapper.xml
+31
-0
AdvertisingSpaceMapper.xml
...n/resources/mapper/advertising/AdvertisingSpaceMapper.xml
+191
-5
No files found.
pcloud-facade-book/src/main/java/com/pcloud/book/book/dto/BookDto.java
View file @
fa773c80
...
@@ -515,6 +515,16 @@ public class BookDto extends BaseDto {
...
@@ -515,6 +515,16 @@ public class BookDto extends BaseDto {
*/
*/
private
String
secondTypeCode
;
private
String
secondTypeCode
;
/**
* 报名量
*/
private
Long
registerNum
;
/**
* 报名率
*/
private
BigDecimal
registerRate
;
public
String
getQrRemark
()
{
public
String
getQrRemark
()
{
return
qrRemark
;
return
qrRemark
;
}
}
...
@@ -1311,6 +1321,22 @@ public class BookDto extends BaseDto {
...
@@ -1311,6 +1321,22 @@ public class BookDto extends BaseDto {
this
.
depLabelId
=
depLabelId
;
this
.
depLabelId
=
depLabelId
;
}
}
public
Long
getRegisterNum
()
{
return
registerNum
;
}
public
void
setRegisterNum
(
Long
registerNum
)
{
this
.
registerNum
=
registerNum
;
}
public
BigDecimal
getRegisterRate
()
{
return
registerRate
;
}
public
void
setRegisterRate
(
BigDecimal
registerRate
)
{
this
.
registerRate
=
registerRate
;
}
@Override
@Override
public
String
toString
()
{
public
String
toString
()
{
return
"BookDto{"
+
return
"BookDto{"
+
...
@@ -1401,18 +1427,20 @@ public class BookDto extends BaseDto {
...
@@ -1401,18 +1427,20 @@ public class BookDto extends BaseDto {
", clickRate="
+
clickRate
+
", clickRate="
+
clickRate
+
", officialAccountsName='"
+
officialAccountsName
+
'\''
+
", officialAccountsName='"
+
officialAccountsName
+
'\''
+
", uniqueNumber='"
+
uniqueNumber
+
'\''
+
", uniqueNumber='"
+
uniqueNumber
+
'\''
+
", isBookGroup="
+
isBookGroup
+
", bookGroupId="
+
bookGroupId
+
", bookGroupId="
+
bookGroupId
+
", groupQrcodeUrl='"
+
groupQrcodeUrl
+
'\''
+
", groupQrcodeUrl='"
+
groupQrcodeUrl
+
'\''
+
", groupQrcodeName='"
+
groupQrcodeName
+
'\''
+
", groupQrcodeName='"
+
groupQrcodeName
+
'\''
+
", depLabelId="
+
depLabelId
+
", classifyCount="
+
classifyCount
+
", classifyCount="
+
classifyCount
+
", groupPersonCount="
+
groupPersonCount
+
", groupPersonCount="
+
groupPersonCount
+
", groupCount="
+
groupCount
+
", groupCount="
+
groupCount
+
", totalIncome="
+
totalIncome
+
", totalIncome="
+
totalIncome
+
", isBookGroup="
+
isBookGroup
+
", groupQrcodeLink='"
+
groupQrcodeLink
+
'\''
+
", groupQrcodeLink='"
+
groupQrcodeLink
+
'\''
+
", secondTempletId="
+
secondTempletId
+
", secondTempletId="
+
secondTempletId
+
", secondTypeCode='"
+
secondTypeCode
+
'\''
+
", secondTypeCode='"
+
secondTypeCode
+
'\''
+
", depLabelId="
+
depLabelId
+
", registerNum="
+
registerNum
+
", registerRate="
+
registerRate
+
'}'
;
'}'
;
}
}
}
}
pcloud-service-book/src/main/java/com/pcloud/book/BookApplication.java
View file @
fa773c80
...
@@ -2,6 +2,7 @@ package com.pcloud.book;
...
@@ -2,6 +2,7 @@ package com.pcloud.book;
import
com.alibaba.druid.pool.DruidDataSource
;
import
com.alibaba.druid.pool.DruidDataSource
;
import
com.pcloud.book.mq.config.MQTopicConumer
;
import
com.pcloud.book.mq.config.MQTopicConumer
;
import
com.pcloud.common.core.constant.MQQueueConstant
;
import
com.pcloud.common.core.constant.MQTopicProducer
;
import
com.pcloud.common.core.constant.MQTopicProducer
;
import
com.pcloud.common.core.mq.RabbitMQFactory
;
import
com.pcloud.common.core.mq.RabbitMQFactory
;
...
@@ -182,4 +183,9 @@ public class BookApplication {
...
@@ -182,4 +183,9 @@ public class BookApplication {
public
Binding
updateProductInfoBind
()
{
public
Binding
updateProductInfoBind
()
{
return
RabbitMQFactory
.
bindingExchange
(
updateProductInfoQueue
(),
MQTopicProducer
.
PRODUCT_UPDATE
);
return
RabbitMQFactory
.
bindingExchange
(
updateProductInfoQueue
(),
MQTopicProducer
.
PRODUCT_UPDATE
);
}
}
@Bean
public
Queue
convert2BookQueue
(){
return
RabbitMQFactory
.
queueBuilder
(
MQQueueConstant
.
CONVERT_TO_BOOK
);
}
}
}
pcloud-service-book/src/main/java/com/pcloud/book/advertising/biz/AdvertisingSpaceBiz.java
View file @
fa773c80
...
@@ -367,6 +367,29 @@ public interface AdvertisingSpaceBiz {
...
@@ -367,6 +367,29 @@ public interface AdvertisingSpaceBiz {
* @throws BizException
* @throws BizException
*/
*/
AdGroupQrcodeDTO
getGroupQrcodeInfo
(
Long
qrcodeId
)
throws
BizException
;
AdGroupQrcodeDTO
getGroupQrcodeInfo
(
Long
qrcodeId
)
throws
BizException
;
/**
*获得剪切的音视频
* @param fileUrl
* @param fileText
* @param startTime
* @param endTime
* @param duration
* @return
*/
public
String
getCutUrl
(
String
fileUrl
,
String
fileText
,
Double
startTime
,
Double
endTime
,
Double
duration
);
/**
* 未转码的文件
* @return
*/
public
List
<
AdvertisingSpace
>
getUnConvertFile
(
String
adDetailFileId
);
/**
* 更新文件路径
* @param filelist
* @param fileUrl
*/
void
updateFile
(
List
<
AdvertisingSpace
>
filelist
,
String
fileUrl
);
/**
/**
* 获得关闭广告位的出版id
* 获得关闭广告位的出版id
* @return
* @return
...
...
pcloud-service-book/src/main/java/com/pcloud/book/advertising/biz/BmBiz.java
0 → 100644
View file @
fa773c80
package
com
.
pcloud
.
book
.
advertising
.
biz
;
import
com.pcloud.book.advertising.dto.BmRegisterDTO
;
import
com.pcloud.book.advertising.dto.OptionType
;
import
com.pcloud.book.advertising.entity.AdvertisingBmOption
;
import
com.pcloud.book.advertising.entity.AdvertisingBmRegister
;
import
com.pcloud.common.exceptions.BizException
;
import
java.util.List
;
import
java.util.Map
;
/**
* @描述:报名
* @作者:zhuyajie
* @创建时间:20:03 2019/6/27
* @版本:1.0
*/
public
interface
BmBiz
{
/**
* 获取选项类型
* @return
* @throws BizException
*/
List
<
OptionType
>
getOptionType
()
throws
BizException
;
/**
* 获取选项数据类型
* @return
* @throws BizException
*/
List
<
OptionType
>
getOptionDataType
()
throws
BizException
;
/**
* 新增选项列表
* @param advertisingBmOptionList
*/
void
addOptionList
(
List
<
AdvertisingBmOption
>
advertisingBmOptionList
,
Long
adId
);
/**
* 新增选项配置
* @param bmOption 选项实体
* @return
* @throws BizException
*/
Long
addOption
(
AdvertisingBmOption
bmOption
)
throws
BizException
;
/**
* 根据应用ID获取选项列表信息
* @param adId 选项实体
* @return
* @throws BizException
*/
List
<
AdvertisingBmOption
>
getByAdId
(
Long
adId
);
/**
* 修改选项配置
* @param bmOption 选项实体
* @return
* @throws BizException
*/
void
modifyOption
(
AdvertisingBmOption
bmOption
)
throws
BizException
;
/**
* 删除选项
* @param adId
*/
void
deleteByAdId
(
Long
adId
);
/**
* 用户提交表单
* @param bmRegister
* @param wechatUserId
* @return
*/
Long
userSubmit
(
AdvertisingBmRegister
bmRegister
,
Long
wechatUserId
,
Long
qrcodeId
);
/**
* 微信端获取个人报名详情
* @param adId 应用ID
* @param wechatUserId 用户ID
* @return
* @throws BizException
*/
List
<
BmRegisterDTO
>
getDetail4Wechat
(
Long
adId
,
Long
wechatUserId
,
Long
qrcodeId
)
throws
BizException
;
/**
* 获取报名次数
* @param adId
* @return
*/
public
Long
getRegisterCountByAdId
(
Long
adId
,
String
statisMonth
);
/**
* 获取微信群报名次数
* @param adId
* @param statisMonth
* @param qrcodeId
* @return
*/
public
Long
getRegisterCountByAdIdQrcodeId
(
Long
adId
,
String
statisMonth
,
Long
qrcodeId
);
/**
* 获取报名次数
* @param adIdList
* @return
*/
Long
getRegisterCountByAdIds
(
List
<
Long
>
adIdList
);
/**
* 导出报名表单
* @param adId
*/
Map
<
String
,
Object
>
exportRegisterInfoByAdId
(
Long
adId
,
Long
qrcodeId
);
}
pcloud-service-book/src/main/java/com/pcloud/book/advertising/biz/impl/AdvertisingSpaceBizImpl.java
View file @
fa773c80
...
@@ -3,7 +3,7 @@ package com.pcloud.book.advertising.biz.impl;
...
@@ -3,7 +3,7 @@ package com.pcloud.book.advertising.biz.impl;
import
com.pcloud.appcenter.app.dto.AppTypeDto
;
import
com.pcloud.appcenter.app.dto.AppTypeDto
;
import
com.pcloud.appcenter.app.service.AppTypeService
;
import
com.pcloud.appcenter.app.service.AppTypeService
;
import
com.pcloud.book.advertising.biz.AdvertisingSpaceBiz
;
import
com.pcloud.book.advertising.biz.AdvertisingSpaceBiz
;
import
com.pcloud.book.advertising.biz.BmBiz
;
import
com.pcloud.book.advertising.dao.*
;
import
com.pcloud.book.advertising.dao.*
;
import
com.pcloud.book.advertising.dto.*
;
import
com.pcloud.book.advertising.dto.*
;
import
com.pcloud.book.advertising.entity.*
;
import
com.pcloud.book.advertising.entity.*
;
...
@@ -36,13 +36,18 @@ import com.pcloud.book.group.vo.GroupQrcodeVO;
...
@@ -36,13 +36,18 @@ import com.pcloud.book.group.vo.GroupQrcodeVO;
import
com.pcloud.book.util.common.CommonUtils
;
import
com.pcloud.book.util.common.CommonUtils
;
import
com.pcloud.channelcenter.qrcode.service.QrcodeSceneService
;
import
com.pcloud.channelcenter.qrcode.service.QrcodeSceneService
;
import
com.pcloud.common.core.aspect.ParamLog
;
import
com.pcloud.common.core.aspect.ParamLog
;
import
com.pcloud.common.core.biz.ConvertQueueBiz
;
import
com.pcloud.common.core.constant.ConvertEnum
;
import
com.pcloud.common.core.dto.ConvertQueueDto
;
import
com.pcloud.common.exceptions.BizException
;
import
com.pcloud.common.exceptions.BizException
;
import
com.pcloud.common.page.PageBean
;
import
com.pcloud.common.page.PageBean
;
import
com.pcloud.common.page.PageBeanNew
;
import
com.pcloud.common.page.PageParam
;
import
com.pcloud.common.page.PageParam
;
import
com.pcloud.common.utils.DateNewUtils
;
import
com.pcloud.common.utils.DateNewUtils
;
import
com.pcloud.common.utils.DateUtils
;
import
com.pcloud.common.utils.DateUtils
;
import
com.pcloud.common.utils.ListUtils
;
import
com.pcloud.common.utils.ListUtils
;
import
com.pcloud.common.utils.ResponseHandleUtil
;
import
com.pcloud.common.utils.ResponseHandleUtil
;
import
com.pcloud.common.utils.aliyun.OssUtils
;
import
com.pcloud.common.utils.httpclient.UrlUtils
;
import
com.pcloud.common.utils.httpclient.UrlUtils
;
import
com.pcloud.common.utils.string.StringUtil
;
import
com.pcloud.common.utils.string.StringUtil
;
import
com.pcloud.readercenter.wechat.entity.WechatUser
;
import
com.pcloud.readercenter.wechat.entity.WechatUser
;
...
@@ -51,6 +56,7 @@ import com.sdk.wxgroup.SendArticleMessageVO;
...
@@ -51,6 +56,7 @@ import com.sdk.wxgroup.SendArticleMessageVO;
import
com.sdk.wxgroup.SendPicMessageVO
;
import
com.sdk.wxgroup.SendPicMessageVO
;
import
com.sdk.wxgroup.SendTextMessageVO
;
import
com.sdk.wxgroup.SendTextMessageVO
;
import
com.sdk.wxgroup.WxGroupSDK
;
import
com.sdk.wxgroup.WxGroupSDK
;
import
org.apache.commons.collections.MapUtils
;
import
org.apache.commons.collections.MapUtils
;
import
org.apache.commons.lang3.ArrayUtils
;
import
org.apache.commons.lang3.ArrayUtils
;
import
org.slf4j.Logger
;
import
org.slf4j.Logger
;
...
@@ -133,6 +139,13 @@ public class AdvertisingSpaceBizImpl implements AdvertisingSpaceBiz {
...
@@ -133,6 +139,13 @@ public class AdvertisingSpaceBizImpl implements AdvertisingSpaceBiz {
private
ReaderConsr
readerConsr
;
private
ReaderConsr
readerConsr
;
@Autowired
@Autowired
private
LabelConsr
labelConsr
;
private
LabelConsr
labelConsr
;
@Autowired
private
ConvertQueueBiz
convertQueueBiz
;
@Autowired
private
BmBiz
bmBiz
;
private
static
final
String
ADVERTISING_PUT_PLAN_SCHEDULE_PRE
=
"ADVERTISING_PUT_PALN_"
;
/**
/**
* 创建广告位
* 创建广告位
...
@@ -145,8 +158,16 @@ public class AdvertisingSpaceBizImpl implements AdvertisingSpaceBiz {
...
@@ -145,8 +158,16 @@ public class AdvertisingSpaceBizImpl implements AdvertisingSpaceBiz {
checkParamBeforeCreate
(
advertisingSpace
);
checkParamBeforeCreate
(
advertisingSpace
);
String
settlementMethod
=
advertisingSpace
.
getSettlementMethod
();
String
settlementMethod
=
advertisingSpace
.
getSettlementMethod
();
advertisingSpace
.
setIsOpen
(
true
);
advertisingSpace
.
setIsOpen
(
true
);
//CPA方式
if
(
SettlementMethodEnum
.
CPA
.
code
.
equals
(
settlementMethod
))
{
advertisingSpace
=
equipCPA
(
advertisingSpace
);
}
advertisingSpaceDao
.
insert
(
advertisingSpace
);
advertisingSpaceDao
.
insert
(
advertisingSpace
);
Long
adId
=
advertisingSpace
.
getId
();
Long
adId
=
advertisingSpace
.
getId
();
//报名表单选项新增
if
(
SettlementMethodEnum
.
CPA
.
code
.
equals
(
settlementMethod
))
{
bmBiz
.
addOptionList
(
advertisingSpace
.
getAdvertisingBmOptionList
(),
adId
);
}
AdvertisingSettlementMethod
method
=
new
AdvertisingSettlementMethod
();
AdvertisingSettlementMethod
method
=
new
AdvertisingSettlementMethod
();
method
.
setMasterId
(
advertisingSpace
.
getMasterId
());
method
.
setMasterId
(
advertisingSpace
.
getMasterId
());
method
.
setAdId
(
adId
);
method
.
setAdId
(
adId
);
...
@@ -157,6 +178,38 @@ public class AdvertisingSpaceBizImpl implements AdvertisingSpaceBiz {
...
@@ -157,6 +178,38 @@ public class AdvertisingSpaceBizImpl implements AdvertisingSpaceBiz {
}
}
/**
/**
* cpa广告详情参数配置
* @param advertisingSpace
* @return
*/
private
AdvertisingSpace
equipCPA
(
AdvertisingSpace
advertisingSpace
)
{
if
(
AdDetailModeEnum
.
AUDIO
.
code
.
equals
(
advertisingSpace
.
getAdDetailMode
())
||
AdDetailModeEnum
.
VIDEO
.
code
.
equals
(
advertisingSpace
.
getAdDetailMode
()))
{
String
fileId
=
advertisingSpace
.
getAdDetailFileId
();
String
fileUrl
=
advertisingSpace
.
getAdDetailFileUrl
();
String
title
=
advertisingSpace
.
getAdDetailFileName
();
Long
seconds
=
advertisingSpace
.
getAdDetailFilePilotSecond
();
if
(
StringUtil
.
isEmpty
(
fileUrl
)
&&
!
StringUtil
.
isEmpty
(
fileId
))
{
//转码通知
sendConvertFileQueue
(
fileId
,
0
l
);
advertisingSpace
.
setAdDetailFileConvertState
(
0
);
return
advertisingSpace
;
}
if
(!
StringUtil
.
isEmpty
(
fileUrl
))
{
//剪切文件
advertisingSpace
.
setAdDetailFileConvertState
(
1
);
if
(
null
==
seconds
)
{
//试播秒数为null,播放全部
advertisingSpace
.
setAdDetailFilePilotUrl
(
fileUrl
);
advertisingSpace
.
setAdDetailFilePilotSecond
(
0L
);
}
else
if
(
seconds
>
0
)
{
String
cutUrl
=
getCutUrl
(
fileUrl
,
title
,
0
d
,
seconds
.
doubleValue
(),
seconds
.
doubleValue
());
advertisingSpace
.
setAdDetailFilePilotUrl
(
cutUrl
);
}
}
}
return
advertisingSpace
;
}
/**
* 新增前校验参数
* 新增前校验参数
*/
*/
private
void
checkParamBeforeCreate
(
AdvertisingSpace
advertisingSpace
)
{
private
void
checkParamBeforeCreate
(
AdvertisingSpace
advertisingSpace
)
{
...
@@ -176,13 +229,20 @@ public class AdvertisingSpaceBizImpl implements AdvertisingSpaceBiz {
...
@@ -176,13 +229,20 @@ public class AdvertisingSpaceBizImpl implements AdvertisingSpaceBiz {
throw
new
BookBizException
(
BookBizException
.
PARAM_IS_ERROR
,
"广告位置选择有误!"
);
throw
new
BookBizException
(
BookBizException
.
PARAM_IS_ERROR
,
"广告位置选择有误!"
);
}
}
String
settlementMethod
=
advertisingSpace
.
getSettlementMethod
();
String
settlementMethod
=
advertisingSpace
.
getSettlementMethod
();
if
(
AdPositionEnum
.
WECHAT_GROUP_MSG
.
equals
(
adPosition
)
//按点击量结算、按曝光量结算、按实际行动结算价格不为空
&&
!
SettlementMethodEnum
.
CPM
.
code
.
equals
(
settlementMethod
))
{
throw
new
BookBizException
(
BookBizException
.
PARAM_IS_ERROR
,
"微信群消息仅支持按曝光量结算!"
);
}
if
(
ArrayUtils
.
contains
(
SettlementMethodEnum
.
SETTLEMENT_METHOD_NEED_PRICE_GATHER
,
settlementMethod
)
if
(
ArrayUtils
.
contains
(
SettlementMethodEnum
.
SETTLEMENT_METHOD_NEED_PRICE_GATHER
,
settlementMethod
)
&&
null
==
advertisingSpace
.
getPriceEachTime
())
{
&&
null
==
advertisingSpace
.
getPriceEachTime
())
{
throw
new
BookBizException
(
BookBizException
.
PARAM_IS_ERROR
,
"按点击量结算和按曝光量结算时每次价格不能为空!"
);
throw
new
BookBizException
(
BookBizException
.
PARAM_IS_ERROR
,
"价格不能为空!"
);
}
if
(
SettlementMethodEnum
.
CPA
.
code
.
equals
(
settlementMethod
)
&&
!
AdPositionModeEnum
.
JUST_PIC
.
modeCode
.
equals
(
advertisingSpace
.
getAdPositionMode
()))
{
//CPA、非纯图片广告详情、报名表单不为空
if
(
StringUtil
.
isEmpty
(
advertisingSpace
.
getAdDetailMode
()))
{
throw
new
BookBizException
(
BookBizException
.
PARAM_IS_ERROR
,
"广告详情不能为空!"
);
}
if
(
ListUtils
.
isEmpty
(
advertisingSpace
.
getAdvertisingBmOptionList
()))
{
throw
new
BookBizException
(
BookBizException
.
PARAM_IS_ERROR
,
"报名表单不能为空!"
);
}
checkCPAParam
(
advertisingSpace
);
}
}
if
(
AdPositionEnum
.
WECHAT_GROUP_MSG
.
positionCode
.
equals
(
advertisingSpace
.
getAdPosition
()))
{
//微信群投放
if
(
AdPositionEnum
.
WECHAT_GROUP_MSG
.
positionCode
.
equals
(
advertisingSpace
.
getAdPosition
()))
{
//微信群投放
if
(
AdPositionModeEnum
.
TEXT_AND_LINK
.
modeCode
.
equals
(
advertisingSpace
.
getAdPositionMode
()))
{
//多文字+多链接
if
(
AdPositionModeEnum
.
TEXT_AND_LINK
.
modeCode
.
equals
(
advertisingSpace
.
getAdPositionMode
()))
{
//多文字+多链接
...
@@ -201,7 +261,84 @@ public class AdvertisingSpaceBizImpl implements AdvertisingSpaceBiz {
...
@@ -201,7 +261,84 @@ public class AdvertisingSpaceBizImpl implements AdvertisingSpaceBiz {
}
}
}
}
}
}
}
/**
* CPA方式参数校验
* @param advertisingSpace
*/
private
void
checkCPAParam
(
AdvertisingSpace
advertisingSpace
)
{
if
(
StringUtil
.
isEmpty
(
advertisingSpace
.
getAdDetailInfo
()))
{
throw
new
BookBizException
(
BookBizException
.
PARAM_IS_ERROR
,
"产品介绍不能为空!"
);
}
if
(
StringUtil
.
isEmpty
(
advertisingSpace
.
getAdDetailWelfarePic
()))
{
throw
new
BookBizException
(
BookBizException
.
PARAM_IS_ERROR
,
"优惠展示图不能为空!"
);
}
//1图文介绍
if
(
AdDetailModeEnum
.
IMG_TEXT
.
code
.
equals
(
advertisingSpace
.
getAdDetailMode
()))
{
if
(
StringUtil
.
isEmpty
(
advertisingSpace
.
getAdDetailCoverPic
()))
{
throw
new
BookBizException
(
BookBizException
.
PARAM_IS_ERROR
,
"封面不能为空!"
);
}
}
//2音频试听
else
if
(
AdDetailModeEnum
.
AUDIO
.
code
.
equals
(
advertisingSpace
.
getAdDetailMode
()))
{
if
(
StringUtil
.
isEmpty
(
advertisingSpace
.
getAdDetailFileId
()))
{
throw
new
BookBizException
(
BookBizException
.
PARAM_IS_ERROR
,
"请上传音频资源!"
);
}
if
(
StringUtil
.
isEmpty
(
advertisingSpace
.
getAdDetailTitle
()))
{
throw
new
BookBizException
(
BookBizException
.
PARAM_IS_ERROR
,
"标题不能为空!"
);
}
if
(
null
!=
advertisingSpace
.
getAdDetailFileDuration
()
&&
null
!=
advertisingSpace
.
getAdDetailFilePilotSecond
()
&&
advertisingSpace
.
getAdDetailFilePilotSecond
()
>=
advertisingSpace
.
getAdDetailFileDuration
())
{
throw
new
BookBizException
(
BookBizException
.
PARAM_IS_ERROR
,
"试听时长超过音频时长,请重新设置"
);
}
}
//3视频试看
else
if
(
AdDetailModeEnum
.
VIDEO
.
code
.
equals
(
advertisingSpace
.
getAdDetailMode
()))
{
if
(
StringUtil
.
isEmpty
(
advertisingSpace
.
getAdDetailCoverPic
()))
{
throw
new
BookBizException
(
BookBizException
.
PARAM_IS_ERROR
,
"封面不能为空!"
);
}
if
(
StringUtil
.
isEmpty
(
advertisingSpace
.
getAdDetailFileId
()))
{
throw
new
BookBizException
(
BookBizException
.
PARAM_IS_ERROR
,
"请上传视频资源!"
);
}
if
(
StringUtil
.
isEmpty
(
advertisingSpace
.
getAdDetailTitle
()))
{
throw
new
BookBizException
(
BookBizException
.
PARAM_IS_ERROR
,
"标题不能为空!"
);
}
if
(
null
!=
advertisingSpace
.
getAdDetailFileDuration
()
&&
null
!=
advertisingSpace
.
getAdDetailFilePilotSecond
()
&&
advertisingSpace
.
getAdDetailFilePilotSecond
()
>=
advertisingSpace
.
getAdDetailFileDuration
())
{
throw
new
BookBizException
(
BookBizException
.
PARAM_IS_ERROR
,
"试看时长超过视频时长,请重新设置"
);
}
}
//报名设置
if
(
null
==
advertisingSpace
.
getAdFormMobileCheck
())
{
throw
new
BookBizException
(
BookBizException
.
PARAM_IS_ERROR
,
"手机号校验不能为空!"
);
}
if
(
StringUtil
.
isEmpty
(
advertisingSpace
.
getAdFormRemark
()))
{
throw
new
BookBizException
(
BookBizException
.
PARAM_IS_ERROR
,
"报名表单备注不能为空!"
);
}
if
(
StringUtil
.
isEmpty
(
advertisingSpace
.
getAdFormButton
()))
{
throw
new
BookBizException
(
BookBizException
.
PARAM_IS_ERROR
,
"按钮提示不能为空!"
);
}
}
/**
* 向文件转换中心发送通知
*/
public
void
sendConvertFileQueue
(
String
fileId
,
Long
fromId
)
throws
BizException
{
LOGGER
.
info
(
"【文件转换(消)】向文件转换中心发送通知,<START>.[fileId]="
+
fileId
+
",[fromId]="
+
fromId
);
if
(
StringUtil
.
isEmpty
(
fileId
))
{
return
;
}
ConvertQueueDto
convertQueueDto
=
new
ConvertQueueDto
();
convertQueueDto
.
setFileId
(
fileId
);
convertQueueDto
.
setFromType
(
ConvertEnum
.
BOOK
.
value
);
convertQueueDto
.
setFromId
(
fromId
);
try
{
convertQueueBiz
.
sendConvertFileQueue
(
convertQueueDto
);
}
catch
(
Exception
e
)
{
LOGGER
.
error
(
"【文件转换(消)】向文件转换中心发送通知.[sendConvertFileQueue]:"
+
e
.
getMessage
(),
e
);
}
LOGGER
.
info
(
"【文件转换(消)】向文件转换中心发送通知,<END>"
);
}
}
/**
/**
...
@@ -227,7 +364,17 @@ public class AdvertisingSpaceBizImpl implements AdvertisingSpaceBiz {
...
@@ -227,7 +364,17 @@ public class AdvertisingSpaceBizImpl implements AdvertisingSpaceBiz {
if
(
null
!=
bookNum
&&
bookNum
>
0
)
{
if
(
null
!=
bookNum
&&
bookNum
>
0
)
{
throw
new
BookBizException
(
BookBizException
.
PARAM_IS_ERROR
,
"已投放书刊的广告位不能修改!"
);
throw
new
BookBizException
(
BookBizException
.
PARAM_IS_ERROR
,
"已投放书刊的广告位不能修改!"
);
}
}
//CPA方式
if
(
SettlementMethodEnum
.
CPA
.
code
.
equals
(
advertisingSpace
.
getSettlementMethod
()))
{
advertisingSpace
=
equipCPA
(
advertisingSpace
);
}
advertisingSpaceDao
.
update
(
advertisingSpace
);
advertisingSpaceDao
.
update
(
advertisingSpace
);
//报名表单选项新增
if
(
SettlementMethodEnum
.
CPA
.
code
.
equals
(
advertisingSpace
.
getSettlementMethod
()))
{
bmBiz
.
addOptionList
(
advertisingSpace
.
getAdvertisingBmOptionList
(),
advertisingSpace
.
getId
());
}
else
{
//删除可能有的报名信息
bmBiz
.
deleteByAdId
(
advertisingSpace
.
getId
());
}
// 修改结算方式
// 修改结算方式
AdvertisingSettlementMethodDTO
methodDTO
=
advertisingSettlementMethodDao
.
getByMasterIdAndAdId
(
space
.
getMasterId
(),
space
.
getId
());
AdvertisingSettlementMethodDTO
methodDTO
=
advertisingSettlementMethodDao
.
getByMasterIdAndAdId
(
space
.
getMasterId
(),
space
.
getId
());
AdvertisingSettlementMethod
method
=
new
AdvertisingSettlementMethod
();
AdvertisingSettlementMethod
method
=
new
AdvertisingSettlementMethod
();
...
@@ -280,6 +427,10 @@ public class AdvertisingSpaceBizImpl implements AdvertisingSpaceBiz {
...
@@ -280,6 +427,10 @@ public class AdvertisingSpaceBizImpl implements AdvertisingSpaceBiz {
spaceDTO
.
setSettlementMethod
(
methodDTO
.
getSettlementMethod
());
spaceDTO
.
setSettlementMethod
(
methodDTO
.
getSettlementMethod
());
spaceDTO
.
setSettlementMethodName
(
SettlementMethodEnum
.
getNameByCode
(
methodDTO
.
getSettlementMethod
()));
spaceDTO
.
setSettlementMethodName
(
SettlementMethodEnum
.
getNameByCode
(
methodDTO
.
getSettlementMethod
()));
spaceDTO
.
setPriceEachTime
(
methodDTO
.
getPriceEachTime
());
spaceDTO
.
setPriceEachTime
(
methodDTO
.
getPriceEachTime
());
//CPA方式填充报名表单
if
(
SettlementMethodEnum
.
CPA
.
code
.
equals
(
methodDTO
.
getSettlementMethod
()))
{
spaceDTO
.
setAdvertisingBmOptionList
(
bmBiz
.
getByAdId
(
adId
));
}
}
}
Map
<
String
,
Object
>
paramMap
=
new
HashMap
<>();
Map
<
String
,
Object
>
paramMap
=
new
HashMap
<>();
paramMap
.
put
(
"adId"
,
adId
);
paramMap
.
put
(
"adId"
,
adId
);
...
@@ -419,13 +570,15 @@ public class AdvertisingSpaceBizImpl implements AdvertisingSpaceBiz {
...
@@ -419,13 +570,15 @@ public class AdvertisingSpaceBizImpl implements AdvertisingSpaceBiz {
list
.
add
(
distributionBook
);
list
.
add
(
distributionBook
);
}
}
advertisingDistributionBookDao
.
batchInsert
(
list
);
advertisingDistributionBookDao
.
batchInsert
(
list
);
//结算方式
AdvertisingSettlementMethodDTO
methodDTO
=
advertisingSettlementMethodDao
.
getByMasterIdAndAdId
(
advertisingSpace
.
getMasterId
(),
advertisingSpace
.
getId
());
for
(
DistributionWechatGroup
group
:
book
.
getGroups
())
{
for
(
DistributionWechatGroup
group
:
book
.
getGroups
())
{
// 获取群信息
// 获取群信息
GroupQrcode
groupQrcode
=
groupQrcodeDao
.
getById
(
group
.
getQrcodeId
());
GroupQrcode
groupQrcode
=
groupQrcodeDao
.
getById
(
group
.
getQrcodeId
());
String
groupId
=
groupQrcode
.
getWeixinGroupId
();
String
groupId
=
groupQrcode
.
getWeixinGroupId
();
ClassifyDTO
classifyDTO
=
bookGroupClassifyDao
.
getById
(
group
.
getClassifyId
());
ClassifyDTO
classifyDTO
=
bookGroupClassifyDao
.
getById
(
group
.
getClassifyId
());
// 获取机器人微信号
// 获取机器人微信号
String
altId
=
wechatGroupConsr
.
get
RobotId
ByGroupId
(
groupId
);
String
altId
=
wechatGroupConsr
.
get
SendAdRobot
ByGroupId
(
groupId
);
if
(
AdPositionModeEnum
.
TEXT_AND_LINK
.
modeCode
.
equals
(
advertisingSpace
.
getAdPositionMode
()))
{
if
(
AdPositionModeEnum
.
TEXT_AND_LINK
.
modeCode
.
equals
(
advertisingSpace
.
getAdPositionMode
()))
{
//多文字+多链接 modifyby zhuyajie
//多文字+多链接 modifyby zhuyajie
//例如:[色]123<link>http://www.baidu.com</link>1111111[闭嘴]
//例如:[色]123<link>http://www.baidu.com</link>1111111[闭嘴]
...
@@ -444,6 +597,9 @@ public class AdvertisingSpaceBizImpl implements AdvertisingSpaceBiz {
...
@@ -444,6 +597,9 @@ public class AdvertisingSpaceBizImpl implements AdvertisingSpaceBiz {
adLink
=
adLinkOld
+
"?book_group_id="
+
classifyDTO
.
getBookGroupId
()
+
"&classify_id="
+
group
.
getClassifyId
()
adLink
=
adLinkOld
+
"?book_group_id="
+
classifyDTO
.
getBookGroupId
()
+
"&classify_id="
+
group
.
getClassifyId
()
+
"&qrcode_id="
+
group
.
getQrcodeId
()
+
"&ad_id="
+
advertisingSpace
.
getId
();
+
"&qrcode_id="
+
group
.
getQrcodeId
()
+
"&ad_id="
+
advertisingSpace
.
getId
();
}
}
if
(
null
!=
methodDTO
)
{
adLink
=
adLink
+
"&settlement_method="
+
methodDTO
.
getSettlementMethod
();
}
adLink
=
UrlUtils
.
getShortUrl4Own
(
wechatGroupLinkPrefix
+
"/link?url="
+
URLEncoder
.
encode
(
adLink
));
adLink
=
UrlUtils
.
getShortUrl4Own
(
wechatGroupLinkPrefix
+
"/link?url="
+
URLEncoder
.
encode
(
adLink
));
}
}
adTitle
=
adTitle
.
replace
(
link
,
adLink
);
adTitle
=
adTitle
.
replace
(
link
,
adLink
);
...
@@ -473,12 +629,14 @@ public class AdvertisingSpaceBizImpl implements AdvertisingSpaceBiz {
...
@@ -473,12 +629,14 @@ public class AdvertisingSpaceBizImpl implements AdvertisingSpaceBiz {
}
}
sendArticleMessageVO
.
setLinkUrl
(
adLink
);
sendArticleMessageVO
.
setLinkUrl
(
adLink
);
sendArticleMessageVO
.
setPicUrl
(
advertisingSpace
.
getAdPic
());
sendArticleMessageVO
.
setPicUrl
(
advertisingSpace
.
getAdPic
());
LOGGER
.
info
(
"发送微信消息"
+
sendArticleMessageVO
.
toString
());
WxGroupSDK
.
sendArticleMessage
(
sendArticleMessageVO
);
WxGroupSDK
.
sendArticleMessage
(
sendArticleMessageVO
);
}
else
if
(
AdPositionModeEnum
.
JUST_PIC
.
modeCode
.
equals
(
advertisingSpace
.
getAdPositionMode
()))
{
}
else
if
(
AdPositionModeEnum
.
JUST_PIC
.
modeCode
.
equals
(
advertisingSpace
.
getAdPositionMode
()))
{
SendPicMessageVO
sendPicMessageVO
=
new
SendPicMessageVO
();
SendPicMessageVO
sendPicMessageVO
=
new
SendPicMessageVO
();
sendPicMessageVO
.
setAltId
(
altId
);
sendPicMessageVO
.
setAltId
(
altId
);
sendPicMessageVO
.
setGroupId
(
groupId
);
sendPicMessageVO
.
setGroupId
(
groupId
);
sendPicMessageVO
.
setPicUrl
(
advertisingSpace
.
getAdPic
());
sendPicMessageVO
.
setPicUrl
(
advertisingSpace
.
getAdPic
());
LOGGER
.
info
(
"发送微信消息"
+
sendPicMessageVO
.
toString
());
WxGroupSDK
.
sendPicMessage
(
sendPicMessageVO
);
WxGroupSDK
.
sendPicMessage
(
sendPicMessageVO
);
}
}
}
}
...
@@ -702,6 +860,12 @@ public class AdvertisingSpaceBizImpl implements AdvertisingSpaceBiz {
...
@@ -702,6 +860,12 @@ public class AdvertisingSpaceBizImpl implements AdvertisingSpaceBiz {
bookDto
.
setClickRate
(
clickRate
);
bookDto
.
setClickRate
(
clickRate
);
BigDecimal
income
=
getIncomeByAdId
(
adId
,
bookDto
.
getBookId
(),
bookDto
.
getChannelId
(),
null
);
BigDecimal
income
=
getIncomeByAdId
(
adId
,
bookDto
.
getBookId
(),
bookDto
.
getChannelId
(),
null
);
bookDto
.
setTotalIncome
(
income
);
bookDto
.
setTotalIncome
(
income
);
//报名量报名率
Long
registerNum
=
bmBiz
.
getRegisterCountByAdId
(
adId
,
null
);
BigDecimal
registerRate
=
(
null
==
clickNum
||
clickNum
.
equals
(
0L
))
?
BigDecimal
.
ZERO
:
new
BigDecimal
(
registerNum
.
doubleValue
()
/
clickNum
).
setScale
(
2
,
BigDecimal
.
ROUND_HALF_UP
);
bookDto
.
setRegisterNum
(
registerNum
);
bookDto
.
setRegisterRate
(
registerRate
);
}
}
return
pageBean
;
return
pageBean
;
}
}
...
@@ -752,6 +916,12 @@ public class AdvertisingSpaceBizImpl implements AdvertisingSpaceBiz {
...
@@ -752,6 +916,12 @@ public class AdvertisingSpaceBizImpl implements AdvertisingSpaceBiz {
// 点击读者量
// 点击读者量
Long
clickUserNum
=
getClickUserNumByGroupQrcodeId
(
qrcodeDTO
.
getGroupQrcodeId
(),
adId
,
null
);
Long
clickUserNum
=
getClickUserNumByGroupQrcodeId
(
qrcodeDTO
.
getGroupQrcodeId
(),
adId
,
null
);
qrcodeDTO
.
setClickUserNum
(
clickUserNum
);
qrcodeDTO
.
setClickUserNum
(
clickUserNum
);
//报名量报名率
Long
registerNum
=
bmBiz
.
getRegisterCountByAdId
(
adId
,
null
);
BigDecimal
registerRate
=
(
null
==
clickNum
||
clickNum
.
equals
(
0L
))
?
BigDecimal
.
ZERO
:
new
BigDecimal
(
registerNum
.
doubleValue
()
/
clickNum
).
setScale
(
2
,
BigDecimal
.
ROUND_HALF_UP
);
qrcodeDTO
.
setRegisterNum
(
registerNum
);
qrcodeDTO
.
setRegisterRate
(
registerRate
);
}
}
return
pageBean
;
return
pageBean
;
}
}
...
@@ -1043,6 +1213,13 @@ public class AdvertisingSpaceBizImpl implements AdvertisingSpaceBiz {
...
@@ -1043,6 +1213,13 @@ public class AdvertisingSpaceBizImpl implements AdvertisingSpaceBiz {
spaceDTO
.
setClickRate
(
clickRate
);
spaceDTO
.
setClickRate
(
clickRate
);
BigDecimal
income
=
getIncomeByAdId
(
spaceDTO
.
getId
());
BigDecimal
income
=
getIncomeByAdId
(
spaceDTO
.
getId
());
spaceDTO
.
setTotalIncome
(
income
);
spaceDTO
.
setTotalIncome
(
income
);
//报名量报名率
Long
registerNum
=
bmBiz
.
getRegisterCountByAdId
(
spaceDTO
.
getId
(),
null
);
BigDecimal
registerRate
=
(
null
==
spaceDTO
.
getClickNum
()
||
spaceDTO
.
getClickNum
().
equals
(
0L
))
?
BigDecimal
.
ZERO
:
new
BigDecimal
(
registerNum
.
doubleValue
()
/
spaceDTO
.
getClickNum
()).
setScale
(
2
,
BigDecimal
.
ROUND_HALF_UP
);
spaceDTO
.
setRegisterNum
(
registerNum
);
spaceDTO
.
setRegisterRate
(
registerRate
);
List
<
AdvertisingDistributionBook
>
list
=
advertisingDistributionBookDao
.
getByAdId
(
spaceDTO
.
getId
());
List
<
AdvertisingDistributionBook
>
list
=
advertisingDistributionBookDao
.
getByAdId
(
spaceDTO
.
getId
());
if
(!
ListUtils
.
isEmpty
(
list
))
{
if
(!
ListUtils
.
isEmpty
(
list
))
{
spaceDTO
.
setBookNum
(
list
.
size
());
spaceDTO
.
setBookNum
(
list
.
size
());
...
@@ -1092,6 +1269,13 @@ public class AdvertisingSpaceBizImpl implements AdvertisingSpaceBiz {
...
@@ -1092,6 +1269,13 @@ public class AdvertisingSpaceBizImpl implements AdvertisingSpaceBiz {
spaceDTO
.
setClickRate
(
clickRate
);
spaceDTO
.
setClickRate
(
clickRate
);
BigDecimal
income
=
getIncomeByAdId
(
spaceDTO
.
getId
(),
bookId
,
channelId
,
statisMonth
);
BigDecimal
income
=
getIncomeByAdId
(
spaceDTO
.
getId
(),
bookId
,
channelId
,
statisMonth
);
spaceDTO
.
setTotalIncome
(
income
);
spaceDTO
.
setTotalIncome
(
income
);
//报名量报名率
Long
clickNum
=
spaceDTO
.
getClickNum
();
Long
registerNum
=
bmBiz
.
getRegisterCountByAdId
(
spaceDTO
.
getId
(),
statisMonth
);
BigDecimal
registerRate
=
(
null
==
clickNum
||
clickNum
.
equals
(
0L
))
?
BigDecimal
.
ZERO
:
new
BigDecimal
(
registerNum
.
doubleValue
()
/
clickNum
).
setScale
(
2
,
BigDecimal
.
ROUND_HALF_UP
);
spaceDTO
.
setRegisterNum
(
registerNum
);
spaceDTO
.
setRegisterRate
(
registerRate
);
// 填充广告位置名称
// 填充广告位置名称
fillAdpositionName4CommonAd
(
spaceDTO
);
fillAdpositionName4CommonAd
(
spaceDTO
);
}
}
...
@@ -1112,7 +1296,7 @@ public class AdvertisingSpaceBizImpl implements AdvertisingSpaceBiz {
...
@@ -1112,7 +1296,7 @@ public class AdvertisingSpaceBizImpl implements AdvertisingSpaceBiz {
throw
new
BookBizException
(
BookBizException
.
PARAM_IS_ERROR
,
"暂无数据导出!"
);
throw
new
BookBizException
(
BookBizException
.
PARAM_IS_ERROR
,
"暂无数据导出!"
);
}
}
// 字段名
// 字段名
String
[]
rowsName
=
{
"序号"
,
"广告位名称"
,
"广告主"
,
"广告位置"
,
"投放时间"
,
"曝光量"
,
"点击量"
,
"点击率"
,
"累计收益"
};
String
[]
rowsName
=
{
"序号"
,
"广告位名称"
,
"广告主"
,
"广告位置"
,
"投放时间"
,
"曝光量"
,
"点击量"
,
"点击率"
,
"
报名量"
,
"报名率"
,
"
累计收益"
};
List
<
Object
[]>
dataList
=
new
ArrayList
<>();
List
<
Object
[]>
dataList
=
new
ArrayList
<>();
Object
[]
objs
;
Object
[]
objs
;
for
(
int
i
=
0
;
i
<
list
.
size
();
i
++)
{
for
(
int
i
=
0
;
i
<
list
.
size
();
i
++)
{
...
@@ -1132,8 +1316,15 @@ public class AdvertisingSpaceBizImpl implements AdvertisingSpaceBiz {
...
@@ -1132,8 +1316,15 @@ public class AdvertisingSpaceBizImpl implements AdvertisingSpaceBiz {
BigDecimal
clickRate
=
(
null
==
exposureNum
||
exposureNum
.
equals
(
0L
))
?
BigDecimal
.
ZERO
:
BigDecimal
clickRate
=
(
null
==
exposureNum
||
exposureNum
.
equals
(
0L
))
?
BigDecimal
.
ZERO
:
new
BigDecimal
(
clickNum
.
doubleValue
()
/
exposureNum
).
setScale
(
2
,
BigDecimal
.
ROUND_HALF_UP
);
new
BigDecimal
(
clickNum
.
doubleValue
()
/
exposureNum
).
setScale
(
2
,
BigDecimal
.
ROUND_HALF_UP
);
objs
[
7
]
=
clickRate
.
multiply
(
new
BigDecimal
(
100
)).
setScale
(
0
,
BigDecimal
.
ROUND_HALF_UP
)
+
"%"
;
objs
[
7
]
=
clickRate
.
multiply
(
new
BigDecimal
(
100
)).
setScale
(
0
,
BigDecimal
.
ROUND_HALF_UP
)
+
"%"
;
//报名量报名率
Long
registerNum
=
bmBiz
.
getRegisterCountByAdId
(
spaceDTO
.
getId
(),
statisMonth
);
BigDecimal
registerRate
=
(
null
==
clickNum
||
clickNum
.
equals
(
0L
))
?
BigDecimal
.
ZERO
:
new
BigDecimal
(
registerNum
.
doubleValue
()
/
clickNum
).
setScale
(
2
,
BigDecimal
.
ROUND_HALF_UP
);
objs
[
8
]
=
registerNum
;
objs
[
9
]
=
registerRate
.
multiply
(
new
BigDecimal
(
100
)).
setScale
(
0
,
BigDecimal
.
ROUND_HALF_UP
)
+
"%"
;
BigDecimal
income
=
getIncomeByAdId
(
spaceDTO
.
getId
(),
bookId
,
channelId
,
statisMonth
);
BigDecimal
income
=
getIncomeByAdId
(
spaceDTO
.
getId
(),
bookId
,
channelId
,
statisMonth
);
objs
[
8
]
=
income
+
"元"
;
objs
[
10
]
=
income
+
"元"
;
dataList
.
add
(
objs
);
dataList
.
add
(
objs
);
}
}
BookDto
bookDto
=
bookBiz
.
getBaseById
(
bookId
);
BookDto
bookDto
=
bookBiz
.
getBaseById
(
bookId
);
...
@@ -1389,15 +1580,18 @@ public class AdvertisingSpaceBizImpl implements AdvertisingSpaceBiz {
...
@@ -1389,15 +1580,18 @@ public class AdvertisingSpaceBizImpl implements AdvertisingSpaceBiz {
Long
exposureNum
=
0L
;
Long
exposureNum
=
0L
;
Long
clickNum
=
0L
;
Long
clickNum
=
0L
;
BigDecimal
income
=
BigDecimal
.
ZERO
;
BigDecimal
income
=
BigDecimal
.
ZERO
;
Long
registerNum
=
0L
;
if
(
null
!=
spaceDTO
.
getBookId
())
{
if
(
null
!=
spaceDTO
.
getBookId
())
{
if
(
AdPositionEnum
.
WECHAT_GROUP_MSG
.
positionCode
.
equals
(
spaceDTO
.
getAdPosition
()))
{
if
(
AdPositionEnum
.
WECHAT_GROUP_MSG
.
positionCode
.
equals
(
spaceDTO
.
getAdPosition
()))
{
exposureNum
=
getExposureNumByGroupQrcodeId
(
spaceDTO
.
getQrcodeId
(),
spaceDTO
.
getId
(),
statisMonth
);
exposureNum
=
getExposureNumByGroupQrcodeId
(
spaceDTO
.
getQrcodeId
(),
spaceDTO
.
getId
(),
statisMonth
);
clickNum
=
getClickNumByGroupQrcodeId
(
spaceDTO
.
getQrcodeId
(),
spaceDTO
.
getId
(),
statisMonth
);
clickNum
=
getClickNumByGroupQrcodeId
(
spaceDTO
.
getQrcodeId
(),
spaceDTO
.
getId
(),
statisMonth
);
income
=
getIncomeByGroupQrcodeId
(
spaceDTO
.
getQrcodeId
(),
spaceDTO
.
getId
(),
statisMonth
);
income
=
getIncomeByGroupQrcodeId
(
spaceDTO
.
getQrcodeId
(),
spaceDTO
.
getId
(),
statisMonth
);
registerNum
=
bmBiz
.
getRegisterCountByAdIdQrcodeId
(
spaceDTO
.
getId
(),
statisMonth
,
spaceDTO
.
getQrcodeId
());
}
else
{
}
else
{
exposureNum
=
getExposureNumByAdId
(
spaceDTO
.
getId
(),
spaceDTO
.
getBookId
(),
spaceDTO
.
getAdviserId
(),
spaceDTO
.
getChannelId
(),
statisMonth
);
exposureNum
=
getExposureNumByAdId
(
spaceDTO
.
getId
(),
spaceDTO
.
getBookId
(),
spaceDTO
.
getAdviserId
(),
spaceDTO
.
getChannelId
(),
statisMonth
);
clickNum
=
getClickNumByAdId
(
spaceDTO
.
getId
(),
spaceDTO
.
getBookId
(),
spaceDTO
.
getAdviserId
(),
spaceDTO
.
getChannelId
(),
statisMonth
);
clickNum
=
getClickNumByAdId
(
spaceDTO
.
getId
(),
spaceDTO
.
getBookId
(),
spaceDTO
.
getAdviserId
(),
spaceDTO
.
getChannelId
(),
statisMonth
);
income
=
getIncomeByAdId
(
spaceDTO
.
getId
(),
spaceDTO
.
getBookId
(),
spaceDTO
.
getChannelId
(),
statisMonth
);
income
=
getIncomeByAdId
(
spaceDTO
.
getId
(),
spaceDTO
.
getBookId
(),
spaceDTO
.
getChannelId
(),
statisMonth
);
registerNum
=
bmBiz
.
getRegisterCountByAdId
(
spaceDTO
.
getId
(),
statisMonth
);
}
}
}
}
BigDecimal
clickRate
=
(
null
==
exposureNum
||
exposureNum
.
equals
(
0L
))
?
BigDecimal
.
ZERO
:
BigDecimal
clickRate
=
(
null
==
exposureNum
||
exposureNum
.
equals
(
0L
))
?
BigDecimal
.
ZERO
:
...
@@ -1406,6 +1600,12 @@ public class AdvertisingSpaceBizImpl implements AdvertisingSpaceBiz {
...
@@ -1406,6 +1600,12 @@ public class AdvertisingSpaceBizImpl implements AdvertisingSpaceBiz {
spaceDTO
.
setClickNum
(
clickNum
);
spaceDTO
.
setClickNum
(
clickNum
);
spaceDTO
.
setClickRate
(
clickRate
);
spaceDTO
.
setClickRate
(
clickRate
);
spaceDTO
.
setTotalIncome
(
income
);
spaceDTO
.
setTotalIncome
(
income
);
//报名量报名率
BigDecimal
registerRate
=
(
null
==
clickNum
||
clickNum
.
equals
(
0L
))
?
BigDecimal
.
ZERO
:
new
BigDecimal
(
registerNum
.
doubleValue
()
/
clickNum
).
setScale
(
2
,
BigDecimal
.
ROUND_HALF_UP
);
spaceDTO
.
setRegisterNum
(
registerNum
);
spaceDTO
.
setRegisterRate
(
registerRate
);
// 填充广告位置名称
// 填充广告位置名称
if
(
AdPositionEnum
.
WECHAT_GROUP_MSG
.
positionCode
.
equals
(
spaceDTO
.
getAdPosition
()))
{
if
(
AdPositionEnum
.
WECHAT_GROUP_MSG
.
positionCode
.
equals
(
spaceDTO
.
getAdPosition
()))
{
fillAdpositionName4WechatGroupAd
(
spaceDTO
);
fillAdpositionName4WechatGroupAd
(
spaceDTO
);
...
@@ -1452,7 +1652,7 @@ public class AdvertisingSpaceBizImpl implements AdvertisingSpaceBiz {
...
@@ -1452,7 +1652,7 @@ public class AdvertisingSpaceBizImpl implements AdvertisingSpaceBiz {
throw
new
BookBizException
(
BookBizException
.
PARAM_IS_ERROR
,
"暂无数据导出!"
);
throw
new
BookBizException
(
BookBizException
.
PARAM_IS_ERROR
,
"暂无数据导出!"
);
}
}
// 字段名
// 字段名
String
[]
rowsName
=
{
"序号"
,
"广告位名称"
,
"对方ID"
,
"广告位置"
,
"投放渠道"
,
"投放时间"
,
"曝光量"
,
"点击量"
,
"点击率"
,
"累计收益"
};
String
[]
rowsName
=
{
"序号"
,
"广告位名称"
,
"对方ID"
,
"广告位置"
,
"投放渠道"
,
"投放时间"
,
"曝光量"
,
"点击量"
,
"点击率"
,
"
报名量"
,
"报名率"
,
"
累计收益"
};
List
<
Object
[]>
dataList
=
new
ArrayList
<>();
List
<
Object
[]>
dataList
=
new
ArrayList
<>();
Object
[]
objs
;
Object
[]
objs
;
for
(
int
i
=
0
;
i
<
list
.
size
();
i
++)
{
for
(
int
i
=
0
;
i
<
list
.
size
();
i
++)
{
...
@@ -1488,15 +1688,18 @@ public class AdvertisingSpaceBizImpl implements AdvertisingSpaceBiz {
...
@@ -1488,15 +1688,18 @@ public class AdvertisingSpaceBizImpl implements AdvertisingSpaceBiz {
Long
exposureNum
=
0L
;
Long
exposureNum
=
0L
;
Long
clickNum
=
0L
;
Long
clickNum
=
0L
;
BigDecimal
income
=
BigDecimal
.
ZERO
;
BigDecimal
income
=
BigDecimal
.
ZERO
;
Long
registerNum
=
0L
;
if
(
null
!=
spaceDTO
.
getBookId
())
{
if
(
null
!=
spaceDTO
.
getBookId
())
{
if
(
AdPositionEnum
.
WECHAT_GROUP_MSG
.
positionCode
.
equals
(
spaceDTO
.
getAdPosition
()))
{
if
(
AdPositionEnum
.
WECHAT_GROUP_MSG
.
positionCode
.
equals
(
spaceDTO
.
getAdPosition
()))
{
exposureNum
=
getExposureNumByGroupQrcodeId
(
spaceDTO
.
getQrcodeId
(),
spaceDTO
.
getId
(),
statisMonth
);
exposureNum
=
getExposureNumByGroupQrcodeId
(
spaceDTO
.
getQrcodeId
(),
spaceDTO
.
getId
(),
statisMonth
);
clickNum
=
getClickNumByGroupQrcodeId
(
spaceDTO
.
getQrcodeId
(),
spaceDTO
.
getId
(),
statisMonth
);
clickNum
=
getClickNumByGroupQrcodeId
(
spaceDTO
.
getQrcodeId
(),
spaceDTO
.
getId
(),
statisMonth
);
income
=
getIncomeByGroupQrcodeId
(
spaceDTO
.
getQrcodeId
(),
spaceDTO
.
getId
(),
statisMonth
);
income
=
getIncomeByGroupQrcodeId
(
spaceDTO
.
getQrcodeId
(),
spaceDTO
.
getId
(),
statisMonth
);
registerNum
=
bmBiz
.
getRegisterCountByAdIdQrcodeId
(
spaceDTO
.
getId
(),
statisMonth
,
spaceDTO
.
getQrcodeId
());
}
else
{
}
else
{
exposureNum
=
getExposureNumByAdId
(
spaceDTO
.
getId
(),
spaceDTO
.
getBookId
(),
spaceDTO
.
getAdviserId
(),
spaceDTO
.
getChannelId
(),
statisMonth
);
exposureNum
=
getExposureNumByAdId
(
spaceDTO
.
getId
(),
spaceDTO
.
getBookId
(),
spaceDTO
.
getAdviserId
(),
spaceDTO
.
getChannelId
(),
statisMonth
);
clickNum
=
getClickNumByAdId
(
spaceDTO
.
getId
(),
spaceDTO
.
getBookId
(),
spaceDTO
.
getAdviserId
(),
spaceDTO
.
getChannelId
(),
statisMonth
);
clickNum
=
getClickNumByAdId
(
spaceDTO
.
getId
(),
spaceDTO
.
getBookId
(),
spaceDTO
.
getAdviserId
(),
spaceDTO
.
getChannelId
(),
statisMonth
);
income
=
getIncomeByAdId
(
spaceDTO
.
getId
(),
spaceDTO
.
getBookId
(),
spaceDTO
.
getChannelId
(),
statisMonth
);
income
=
getIncomeByAdId
(
spaceDTO
.
getId
(),
spaceDTO
.
getBookId
(),
spaceDTO
.
getChannelId
(),
statisMonth
);
registerNum
=
bmBiz
.
getRegisterCountByAdId
(
spaceDTO
.
getId
(),
statisMonth
);
}
}
}
}
objs
[
6
]
=
exposureNum
;
objs
[
6
]
=
exposureNum
;
...
@@ -1504,7 +1707,12 @@ public class AdvertisingSpaceBizImpl implements AdvertisingSpaceBiz {
...
@@ -1504,7 +1707,12 @@ public class AdvertisingSpaceBizImpl implements AdvertisingSpaceBiz {
BigDecimal
clickRate
=
(
null
==
exposureNum
||
exposureNum
.
equals
(
0L
))
?
BigDecimal
.
ZERO
:
BigDecimal
clickRate
=
(
null
==
exposureNum
||
exposureNum
.
equals
(
0L
))
?
BigDecimal
.
ZERO
:
new
BigDecimal
(
clickNum
.
doubleValue
()
/
exposureNum
).
setScale
(
2
,
BigDecimal
.
ROUND_HALF_UP
);
new
BigDecimal
(
clickNum
.
doubleValue
()
/
exposureNum
).
setScale
(
2
,
BigDecimal
.
ROUND_HALF_UP
);
objs
[
8
]
=
clickRate
.
multiply
(
new
BigDecimal
(
100
)).
setScale
(
0
,
BigDecimal
.
ROUND_HALF_UP
)
+
"%"
;
objs
[
8
]
=
clickRate
.
multiply
(
new
BigDecimal
(
100
)).
setScale
(
0
,
BigDecimal
.
ROUND_HALF_UP
)
+
"%"
;
objs
[
9
]
=
income
+
"元"
;
//报名量报名率
BigDecimal
registerRate
=
(
null
==
clickNum
||
clickNum
.
equals
(
0L
))
?
BigDecimal
.
ZERO
:
new
BigDecimal
(
registerNum
.
doubleValue
()
/
clickNum
).
setScale
(
2
,
BigDecimal
.
ROUND_HALF_UP
);
objs
[
9
]
=
registerNum
;
objs
[
10
]
=
registerRate
.
multiply
(
new
BigDecimal
(
100
)).
setScale
(
0
,
BigDecimal
.
ROUND_HALF_UP
)
+
"%"
;
objs
[
11
]
=
income
+
"元"
;
dataList
.
add
(
objs
);
dataList
.
add
(
objs
);
}
}
String
[]
dateStr
=
statisMonth
.
split
(
"-"
);
String
[]
dateStr
=
statisMonth
.
split
(
"-"
);
...
@@ -1554,6 +1762,13 @@ public class AdvertisingSpaceBizImpl implements AdvertisingSpaceBiz {
...
@@ -1554,6 +1762,13 @@ public class AdvertisingSpaceBizImpl implements AdvertisingSpaceBiz {
}
}
if
(!
ListUtils
.
isEmpty
(
list
))
{
if
(!
ListUtils
.
isEmpty
(
list
))
{
list
.
forEach
(
spaceDTO
->
spaceDTO
.
setBookId
(
bookId
));
list
.
forEach
(
spaceDTO
->
spaceDTO
.
setBookId
(
bookId
));
for
(
AdvertisingSpaceDTO
spaceDTO
:
list
)
{
//填充结算方式
AdvertisingSettlementMethodDTO
methodDTO
=
advertisingSettlementMethodDao
.
getByMasterIdAndAdId
(
spaceDTO
.
getMasterId
(),
spaceDTO
.
getId
());
if
(
null
!=
methodDTO
)
{
spaceDTO
.
setSettlementMethod
(
methodDTO
.
getSettlementMethod
());
}
}
}
}
return
list
;
return
list
;
}
}
...
@@ -1584,6 +1799,27 @@ public class AdvertisingSpaceBizImpl implements AdvertisingSpaceBiz {
...
@@ -1584,6 +1799,27 @@ public class AdvertisingSpaceBizImpl implements AdvertisingSpaceBiz {
return
new
AdvertisingSpaceDTO
();
return
new
AdvertisingSpaceDTO
();
}
}
spaceDTO
.
setBookId
(
bookGroupDTO
.
getBookId
());
spaceDTO
.
setBookId
(
bookGroupDTO
.
getBookId
());
//填充结算方式
AdvertisingSettlementMethodDTO
methodDTO
=
advertisingSettlementMethodDao
.
getByMasterIdAndAdId
(
spaceDTO
.
getMasterId
(),
spaceDTO
.
getId
());
if
(
null
!=
methodDTO
)
{
spaceDTO
.
setSettlementMethod
(
methodDTO
.
getSettlementMethod
());
}
return
spaceDTO
;
}
/**
* 填充CPA结算方式参数
* @param adId
* @param masterId
*/
public
AdvertisingSpaceDTO
fillCPAInfo
(
Long
adId
,
Long
masterId
,
AdvertisingSpaceDTO
spaceDTO
)
{
AdvertisingSettlementMethodDTO
methodDTO
=
advertisingSettlementMethodDao
.
getByMasterIdAndAdId
(
masterId
,
adId
);
if
(
null
!=
methodDTO
)
{
//CPA方式填充报名表单
if
(
SettlementMethodEnum
.
CPA
.
code
.
equals
(
methodDTO
.
getSettlementMethod
()))
{
spaceDTO
.
setAdvertisingBmOptionList
(
bmBiz
.
getByAdId
(
adId
));
}
}
return
spaceDTO
;
return
spaceDTO
;
}
}
...
@@ -1729,6 +1965,13 @@ public class AdvertisingSpaceBizImpl implements AdvertisingSpaceBiz {
...
@@ -1729,6 +1965,13 @@ public class AdvertisingSpaceBizImpl implements AdvertisingSpaceBiz {
masterDTO
.
setClickRate
(
clickRate
);
masterDTO
.
setClickRate
(
clickRate
);
BigDecimal
income
=
getIncomeByMasterId
(
masterDTO
.
getId
());
BigDecimal
income
=
getIncomeByMasterId
(
masterDTO
.
getId
());
masterDTO
.
setTotalIncome
(
income
);
masterDTO
.
setTotalIncome
(
income
);
List
<
Long
>
adIdList
=
advertisingSpaceDao
.
getAdIdsByMasterId
(
masterDTO
.
getId
());
//报名量报名率
Long
registerNum
=
bmBiz
.
getRegisterCountByAdIds
(
adIdList
);
BigDecimal
registerRate
=
(
null
==
clickNum
||
clickNum
.
equals
(
0L
))
?
BigDecimal
.
ZERO
:
new
BigDecimal
(
registerNum
.
doubleValue
()
/
clickNum
).
setScale
(
2
,
BigDecimal
.
ROUND_HALF_UP
);
masterDTO
.
setRegisterNum
(
registerNum
);
masterDTO
.
setRegisterRate
(
registerRate
);
}
}
return
pageBean
;
return
pageBean
;
}
}
...
@@ -1872,6 +2115,53 @@ public class AdvertisingSpaceBizImpl implements AdvertisingSpaceBiz {
...
@@ -1872,6 +2115,53 @@ public class AdvertisingSpaceBizImpl implements AdvertisingSpaceBiz {
}
}
@Override
@Override
public
String
getCutUrl
(
String
fileUrl
,
String
fileText
,
Double
startTime
,
Double
endTime
,
Double
duration
)
{
String
musicUrl
;
try
{
if
(
startTime
.
equals
(
0
d
)
&&
endTime
.
equals
(
0
d
))
{
musicUrl
=
fileUrl
;
}
else
{
String
realUrl
=
OssUtils
.
submitClipJob
(
fileText
,
fileUrl
,
startTime
.
toString
(),
duration
.
toString
());
musicUrl
=
realUrl
;
}
}
catch
(
Exception
e
)
{
LOGGER
.
error
(
"音视频剪切失败"
+
e
.
getMessage
(),
e
);
throw
new
BookBizException
(
BookBizException
.
ERROR
,
"音视频剪切失败"
);
}
return
musicUrl
;
}
@Override
public
List
<
AdvertisingSpace
>
getUnConvertFile
(
String
adDetailFileId
)
{
return
advertisingSpaceDao
.
getUnConvertFile
(
adDetailFileId
);
}
@Override
public
void
updateFile
(
List
<
AdvertisingSpace
>
filelist
,
String
fileUrl
)
{
if
(
ListUtils
.
isEmpty
(
filelist
))
{
return
;
}
for
(
AdvertisingSpace
advertisingSpace
:
filelist
)
{
if
(
null
==
advertisingSpace
)
{
continue
;
}
Long
seconds
=
advertisingSpace
.
getAdDetailFilePilotSecond
();
//更新
AdvertisingSpace
space
=
new
AdvertisingSpace
();
space
.
setAdDetailFileConvertState
(
1
);
space
.
setAdDetailFileUrl
(
fileUrl
);
space
.
setAdDetailFileId
(
advertisingSpace
.
getAdDetailFileId
());
if
(
null
!=
seconds
&&
seconds
>
0
)
{
String
cutUrl
=
getCutUrl
(
fileUrl
,
advertisingSpace
.
getAdDetailFileName
(),
0
d
,
seconds
.
doubleValue
(),
seconds
.
doubleValue
());
space
.
setAdDetailFilePilotUrl
(
cutUrl
);
}
else
{
//播放全部
space
.
setAdDetailFilePilotUrl
(
fileUrl
);
}
advertisingSpaceDao
.
updateByFileId
(
space
);
}
}
@Override
public
List
<
Long
>
getCloseAgentId
()
{
public
List
<
Long
>
getCloseAgentId
()
{
return
advertisingAgentPermissionDao
.
getCloseAgentId
();
return
advertisingAgentPermissionDao
.
getCloseAgentId
();
}
}
...
...
pcloud-service-book/src/main/java/com/pcloud/book/advertising/biz/impl/BmBizImpl.java
0 → 100644
View file @
fa773c80
package
com
.
pcloud
.
book
.
advertising
.
biz
.
impl
;
import
com.pcloud.book.advertising.biz.BmBiz
;
import
com.pcloud.book.advertising.dao.AdvertisingSpaceDao
;
import
com.pcloud.book.advertising.dao.BmOptionDao
;
import
com.pcloud.book.advertising.dao.BmOptionItemDao
;
import
com.pcloud.book.advertising.dao.BmRegisterDao
;
import
com.pcloud.book.advertising.dao.BmRegisterItemDao
;
import
com.pcloud.book.advertising.dto.AdvertisingSpaceDTO
;
import
com.pcloud.book.advertising.dto.BmRegisterDTO
;
import
com.pcloud.book.advertising.dto.BmRegisterItemDTO
;
import
com.pcloud.book.advertising.dto.OptionType
;
import
com.pcloud.book.advertising.entity.AdvertisingBmOption
;
import
com.pcloud.book.advertising.entity.AdvertisingBmOptionItem
;
import
com.pcloud.book.advertising.entity.AdvertisingBmRegister
;
import
com.pcloud.book.advertising.entity.AdvertisingBmRegisterItem
;
import
com.pcloud.book.base.exception.BookBizException
;
import
com.pcloud.book.consumer.reader.ReaderConsr
;
import
com.pcloud.book.util.common.ExcelUtils
;
import
com.pcloud.common.entity.UploadResultInfo
;
import
com.pcloud.common.exceptions.BizException
;
import
com.pcloud.common.exceptions.ExportException
;
import
com.pcloud.common.utils.ListUtils
;
import
com.pcloud.common.utils.aliyun.OssUtils
;
import
com.pcloud.common.utils.string.StringUtil
;
import
com.pcloud.common.utils.validate.ValidateUtils
;
import
com.pcloud.readercenter.wechat.entity.WechatUser
;
import
org.apache.poi.ss.usermodel.CellStyle
;
import
org.apache.poi.ss.usermodel.HorizontalAlignment
;
import
org.apache.poi.ss.util.CellRangeAddress
;
import
org.apache.poi.xssf.streaming.SXSSFCell
;
import
org.apache.poi.xssf.streaming.SXSSFRow
;
import
org.apache.poi.xssf.streaming.SXSSFSheet
;
import
org.apache.poi.xssf.streaming.SXSSFWorkbook
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.dao.DataAccessException
;
import
org.springframework.stereotype.Component
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.io.File
;
import
java.io.FileNotFoundException
;
import
java.io.FileOutputStream
;
import
java.io.IOException
;
import
java.text.SimpleDateFormat
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.UUID
;
/**
* @描述:报名
* @作者:zhuyajie
* @创建时间:20:04 2019/6/27
* @版本:1.0
*/
@Component
(
"bmBiz"
)
public
class
BmBizImpl
implements
BmBiz
{
private
static
final
Logger
LOGGER
=
LoggerFactory
.
getLogger
(
BmBizImpl
.
class
);
@Autowired
private
BmOptionDao
bmOptionDao
;
@Autowired
private
BmOptionItemDao
bmOptionItemDao
;
@Autowired
private
ReaderConsr
readerConsr
;
@Autowired
private
BmRegisterDao
bmRegisterDao
;
@Autowired
private
BmRegisterItemDao
bmRegisterItemDao
;
@Autowired
private
AdvertisingSpaceDao
advertisingSpaceDao
;
/**
* 获取报名商品选项类型
*/
@Override
public
List
<
OptionType
>
getOptionType
()
throws
BizException
{
List
<
OptionType
>
list
=
new
ArrayList
<>();
OptionType
optionType
=
new
OptionType
(
"input"
,
"文本域(读者最多输入50字)"
);
list
.
add
(
optionType
);
optionType
=
new
OptionType
(
"textarea"
,
"多行文本域(读者最多输入2000字)"
);
list
.
add
(
optionType
);
optionType
=
new
OptionType
(
"radio"
,
"单选按钮"
);
list
.
add
(
optionType
);
optionType
=
new
OptionType
(
"checkbox"
,
"复选框"
);
list
.
add
(
optionType
);
optionType
=
new
OptionType
(
"select"
,
"选择(列表/菜单)"
);
list
.
add
(
optionType
);
// optionType = new OptionType("levelselect", "2级选择(列表/菜单)");
// list.add(optionType);
optionType
=
new
OptionType
(
"file"
,
"文件域"
);
list
.
add
(
optionType
);
// optionType = new OptionType("areas", "省市区");
// list.add(optionType);
return
list
;
}
/**
* 获取报名商品选项数据类型
*/
@Override
public
List
<
OptionType
>
getOptionDataType
()
throws
BizException
{
List
<
OptionType
>
list
=
new
ArrayList
<>();
OptionType
optionType
=
new
OptionType
(
"text"
,
"不限"
);
list
.
add
(
optionType
);
optionType
=
new
OptionType
(
"number"
,
"数字"
);
list
.
add
(
optionType
);
optionType
=
new
OptionType
(
"chinese"
,
"汉字"
);
list
.
add
(
optionType
);
optionType
=
new
OptionType
(
"english"
,
"字母"
);
list
.
add
(
optionType
);
optionType
=
new
OptionType
(
"email"
,
"邮箱"
);
list
.
add
(
optionType
);
optionType
=
new
OptionType
(
"date"
,
"日期"
);
list
.
add
(
optionType
);
optionType
=
new
OptionType
(
"mobile"
,
"手机"
);
list
.
add
(
optionType
);
optionType
=
new
OptionType
(
"phone"
,
"固话"
);
list
.
add
(
optionType
);
optionType
=
new
OptionType
(
"idcard"
,
"身份证"
);
list
.
add
(
optionType
);
// optionType = new OptionType("image", "图片");
// list.add(optionType);
return
list
;
}
/**
* 新增选项列表
*/
@Override
public
void
addOptionList
(
List
<
AdvertisingBmOption
>
advertisingBmOptionList
,
Long
adId
)
{
if
(
ListUtils
.
isEmpty
(
advertisingBmOptionList
)
||
null
==
adId
)
{
return
;
}
List
<
Long
>
optionIds
=
bmOptionDao
.
getOptionIdsByAdId
(
adId
);
List
<
Long
>
deleteOptionIds
=
new
ArrayList
<>();
for
(
AdvertisingBmOption
bmOption
:
advertisingBmOptionList
)
{
bmOption
.
setAdId
(
adId
);
if
(!
ListUtils
.
isEmpty
(
optionIds
)
&&
null
!=
bmOption
.
getId
())
{
//修改选项
modifyOption
(
bmOption
);
optionIds
.
remove
(
bmOption
.
getId
());
}
else
{
addOption
(
bmOption
);
}
}
if
(!
ListUtils
.
isEmpty
(
optionIds
))
{
//要删除的选项
bmOptionDao
.
deleteByIds
(
optionIds
);
for
(
Long
optionId:
optionIds
){
bmOptionItemDao
.
deleteByOptionId
(
optionId
);
}
}
}
/**
* 新增选项
*/
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
Long
addOption
(
AdvertisingBmOption
bmOption
)
throws
BizException
{
Long
adId
=
bmOption
.
getAdId
();
// 校验参数
if
(
null
==
adId
||
null
==
bmOption
.
getItemInputType
()
||
null
==
bmOption
.
getItemTitle
())
{
throw
new
BookBizException
(
BookBizException
.
PARAM_IS_ERROR
,
"参数有误!"
);
}
// 新增选项
if
(
null
==
bmOption
.
getSeq
())
{
bmOption
.
setSeq
(
0L
);
}
bmOption
.
setCreateUser
(
0L
);
bmOptionDao
.
insert
(
bmOption
);
Long
optionId
=
bmOption
.
getId
();
// 添加选项清单
addOptionItem
(
bmOption
.
getOptionItem
(),
bmOption
.
getCreateUser
(),
optionId
);
return
optionId
;
}
/**
* 添加选项清单
* @param itemList 选项清单列表
* @param partyId 参与者ID
* @param optionId 选项ID
* @throws BizException
*/
public
void
addOptionItem
(
List
<
AdvertisingBmOptionItem
>
itemList
,
Long
partyId
,
Long
optionId
)
throws
BizException
{
if
(
itemList
!=
null
&&
itemList
.
size
()
>
0
)
{
Long
parentId
=
0L
;
for
(
int
i
=
0
;
i
<
itemList
.
size
();
i
++)
{
AdvertisingBmOptionItem
item
=
itemList
.
get
(
i
);
item
.
setOptionId
(
optionId
);
item
.
setCreateUser
(
partyId
);
String
text
=
item
.
getText
();
if
(
text
!=
null
&&
!
text
.
trim
().
equals
(
""
))
{
String
txt
=
text
.
replace
(
"#"
,
""
);
// 二级
if
(
text
.
indexOf
(
"##"
)
>
-
1
)
{
item
.
setParentId
(
parentId
);
item
.
setText
(
txt
);
bmOptionItemDao
.
insert
(
item
);
}
// 一级
else
if
(
text
.
indexOf
(
"#"
)
>
-
1
)
{
item
.
setParentId
(
0L
);
item
.
setText
(
txt
);
bmOptionItemDao
.
insert
(
item
);
parentId
=
item
.
getId
();
}
else
{
item
.
setParentId
(
0L
);
item
.
setText
(
txt
);
bmOptionItemDao
.
insert
(
item
);
}
}
else
{
item
.
setParentId
(
0L
);
bmOptionItemDao
.
insert
(
item
);
}
}
}
}
/**
* 根据应用ID获取选项列表信息
*/
@Override
public
List
<
AdvertisingBmOption
>
getByAdId
(
Long
adId
)
throws
BizException
{
if
(
null
==
adId
){
return
new
ArrayList
<>();
}
List
<
AdvertisingBmOption
>
list
=
bmOptionDao
.
getByAdId
(
adId
);
return
list
;
}
/**
* 应用修改选项
*/
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
modifyOption
(
AdvertisingBmOption
bmOption
)
throws
BizException
{
Long
adId
=
bmOption
.
getAdId
();
Long
id
=
bmOption
.
getId
();
// 校验参数
if
(
adId
==
null
||
bmOption
.
getItemInputType
()
==
null
||
bmOption
.
getItemTitle
()
==
null
||
id
==
null
)
{
throw
new
BookBizException
(
BookBizException
.
PARAM_IS_ERROR
,
"参数有误!"
);
}
// 修改选项
bmOption
.
setUpdateUser
(
0L
);
bmOptionDao
.
update
(
bmOption
);
Long
optionId
=
bmOption
.
getId
();
// 删除之前的选项清单
bmOptionItemDao
.
deleteByOptionId
(
id
);
// 添加选项清单
addOptionItem
(
bmOption
.
getOptionItem
(),
bmOption
.
getUpdateUser
(),
optionId
);
}
@Override
public
void
deleteByAdId
(
Long
adId
)
{
List
<
Long
>
optionIds
=
bmOptionDao
.
getOptionIdsByAdId
(
adId
);
if
(
ListUtils
.
isEmpty
(
optionIds
))
{
return
;
}
for
(
Long
optionId
:
optionIds
)
{
bmOptionItemDao
.
deleteByOptionId
(
optionId
);
}
bmOptionDao
.
deleteByIds
(
optionIds
);
}
@Override
public
Long
userSubmit
(
AdvertisingBmRegister
bmRegister
,
Long
wechatUserId
,
Long
qrcodeId
)
{
// 检测参数
Long
adId
=
bmRegister
.
getAdId
();
if
(
adId
==
null
)
{
throw
new
BookBizException
(
BookBizException
.
PARAM_IS_ERROR
,
"参数有误!"
);
}
// 获取用户昵称
WechatUser
wechat
=
readerConsr
.
getWechatUser
(
wechatUserId
);
bmRegister
.
setNickName
(
wechat
==
null
?
""
:
wechat
.
getWechatUserNickname
());
bmRegister
.
setQrcodeId
(
qrcodeId
);
bmRegisterDao
.
insert
(
bmRegister
);
Long
registerId
=
bmRegister
.
getId
();
// 添加用户选项
addRegisterItem
(
bmRegister
.
getBmRegisterItemList
(),
adId
,
wechatUserId
,
registerId
);
return
registerId
;
}
/**
* 添加用户选项
* @param items
* @param adId
* @param wechatUserId
* @param registerId
* @throws BizException
*/
public
void
addRegisterItem
(
List
<
AdvertisingBmRegisterItem
>
items
,
Long
adId
,
Long
wechatUserId
,
Long
registerId
)
throws
BizException
{
if
(
ListUtils
.
isEmpty
(
items
))
{
return
;
}
for
(
AdvertisingBmRegisterItem
item
:
items
)
{
item
.
setUserId
(
wechatUserId
);
item
.
setAdId
(
adId
);
item
.
setRegisterId
(
registerId
);
//多选单选选项id
List
<
Long
>
optionItems
=
item
.
getOptionItemIds
();
if
(
ListUtils
.
isEmpty
(
optionItems
))
{
item
.
setOptionItemId
(
0L
);
bmRegisterItemDao
.
insert
(
item
);
}
else
{
for
(
Long
optionItemId
:
optionItems
)
{
if
(
null
==
optionItemId
)
{
continue
;
}
item
.
setOptionItemId
(
optionItemId
);
String
optionValue
=
bmOptionItemDao
.
getValueById
(
optionItemId
);
item
.
setOptionValue
(
optionValue
);
bmRegisterItemDao
.
insert
(
item
);
}
}
}
}
/**
* 微信端获取个人报名详情
*/
@Override
public
List
<
BmRegisterDTO
>
getDetail4Wechat
(
Long
adId
,
Long
wechatUserId
,
Long
qrcodeId
)
throws
BizException
{
Map
<
String
,
Object
>
paramMap
=
new
HashMap
<>();
paramMap
.
put
(
"adId"
,
adId
);
paramMap
.
put
(
"wechatUserId"
,
wechatUserId
);
paramMap
.
put
(
"qrcodeId"
,
qrcodeId
);
List
<
BmRegisterDTO
>
result
=
bmRegisterDao
.
getDetailByUser
(
paramMap
);
return
result
;
}
@Override
public
Long
getRegisterCountByAdId
(
Long
adId
,
String
statisMonth
)
{
return
bmRegisterDao
.
getRegisterCountByAdId
(
adId
,
statisMonth
);
}
@Override
public
Long
getRegisterCountByAdIdQrcodeId
(
Long
adId
,
String
statisMonth
,
Long
qrcodeId
)
{
return
bmRegisterDao
.
getRegisterCountByAdIdQrcodeId
(
adId
,
statisMonth
,
qrcodeId
);
}
@Override
public
Long
getRegisterCountByAdIds
(
List
<
Long
>
adIdList
)
{
if
(
ListUtils
.
isEmpty
(
adIdList
)){
return
0L
;
}
return
bmRegisterDao
.
getRegisterCountByAdIds
(
adIdList
);
}
@Override
public
Map
<
String
,
Object
>
exportRegisterInfoByAdId
(
Long
adId
,
Long
qrcodeId
)
{
Map
<
String
,
Object
>
result
=
new
HashMap
<>();
Long
registerCount
=
bmRegisterDao
.
getRegisterCountByAdId
(
adId
,
null
);
if
(
registerCount
==
0
)
{
throw
new
BookBizException
(
BookBizException
.
PARAM_IS_ERROR
,
"无报名信息!"
);
}
try
{
String
title
=
"报名用户信息"
;
AdvertisingSpaceDTO
advertisingSpaceDTO
=
advertisingSpaceDao
.
getDTOById
(
adId
);
if
(
null
!=
advertisingSpaceDTO
)
{
title
=
advertisingSpaceDTO
.
getAdName
()
+
"-"
+
title
;
}
List
<
AdvertisingBmOption
>
optionList
=
bmOptionDao
.
getByAdId
(
adId
);
List
<
String
>
rowsNameList
=
new
ArrayList
<>();
rowsNameList
.
add
(
"序号"
);
rowsNameList
.
add
(
"报名人"
);
rowsNameList
.
add
(
"报名时间"
);
for
(
int
t
=
0
;
t
<
optionList
.
size
();
t
++)
{
AdvertisingBmOption
option
=
optionList
.
get
(
t
);
rowsNameList
.
add
(
option
.
getItemTitle
());
}
String
[]
rowsName
=
rowsNameList
.
toArray
(
new
String
[
0
]);
String
fileUrl
=
""
;
//异步导出
String
filePath
=
exportRegisterInfo
(
title
,
rowsName
,
adId
,
optionList
,
qrcodeId
);
result
.
put
(
"fileName"
,
title
);
result
.
put
(
"filePath"
,
filePath
);
return
result
;
}
catch
(
DataAccessException
e
)
{
LOGGER
.
error
(
"导出用户信息时【exportRegisterInfoByMaster】"
+
e
.
getMessage
(),
e
);
throw
new
BookBizException
(
BookBizException
.
ERROR
,
"导出注册用户相关信息时出现异常"
);
}
catch
(
Exception
e
)
{
LOGGER
.
error
(
"调用commoncenter生成Excel异常:"
+
e
.
getMessage
(),
e
);
throw
new
BookBizException
(
BookBizException
.
ERROR
,
"导出失败,请稍后重试"
);
}
}
private
String
exportRegisterInfo
(
String
title
,
String
[]
rowsName
,
Long
adId
,
List
<
AdvertisingBmOption
>
optionList
,
Long
qrcodeId
)
{
LOGGER
.
info
(
"导出相关信息:adId="
+
adId
+
",optionList="
+
optionList
);
SXSSFWorkbook
wb
=
new
SXSSFWorkbook
(
200
);
int
columnNum
=
rowsName
.
length
;
int
rowIndex
=
0
;
SXSSFRow
row
;
SXSSFCell
cell
;
//设置表头样式
CellStyle
headerStyle
=
ExcelUtils
.
getColumnTopStyle
(
wb
);
SXSSFSheet
sheet
=
wb
.
createSheet
();
row
=
sheet
.
createRow
(
rowIndex
);
cell
=
row
.
createCell
(
0
);
//合并前两行
sheet
.
addMergedRegion
(
new
CellRangeAddress
(
rowIndex
,
++
rowIndex
,
0
,
columnNum
-
1
));
cell
.
setCellStyle
(
headerStyle
);
cell
.
setCellValue
(
title
);
//设置属性
row
=
sheet
.
createRow
(++
rowIndex
);
for
(
int
i
=
0
;
i
<
rowsName
.
length
;
++
i
)
{
sheet
.
setColumnWidth
(
i
,
20
*
256
);
cell
=
row
.
createCell
(
i
);
cell
.
setCellStyle
(
headerStyle
);
cell
.
setCellValue
(
rowsName
[
i
]);
}
//设置数据样式
CellStyle
dataStyle
=
ExcelUtils
.
getDataStyle
(
wb
);
dataStyle
.
setAlignment
(
HorizontalAlignment
.
CENTER
);
//准备初始数据
SimpleDateFormat
df
=
new
SimpleDateFormat
(
"yyyy-MM-dd HH:mm:ss"
);
int
k
=
1
;
List
<
BmRegisterDTO
>
registerDtos
=
bmRegisterDao
.
exportRegisterInfoById
(
adId
,
qrcodeId
);
if
(!
ListUtils
.
isEmpty
(
registerDtos
))
{
//excel数据准备
this
.
exportExcelByDataList
(
registerDtos
,
dataStyle
,
k
,
rowIndex
,
sheet
,
optionList
,
df
);
}
//上传文件
String
fileUrl
=
""
;
try
{
String
UID
=
UUID
.
randomUUID
().
toString
();
String
path
=
UID
+
".xlsx"
;
FileOutputStream
fileOut
=
new
FileOutputStream
(
path
);
wb
.
write
(
fileOut
);
fileOut
.
flush
();
fileOut
.
close
();
wb
.
close
();
UploadResultInfo
uploadResultInfo
=
OssUtils
.
uploadLocalFile
(
path
,
"xlsx"
);
fileUrl
=
uploadResultInfo
.
getUrl
();
LOGGER
.
info
(
"=======fileUrl=========="
+
OssUtils
.
urlAddKeyLong
(
fileUrl
));
new
File
(
path
).
delete
();
}
catch
(
FileNotFoundException
e
)
{
LOGGER
.
error
(
"临时文件Excel路径找不到"
+
e
.
getMessage
(),
e
);
throw
new
ExportException
(
BookBizException
.
ERROR
,
"导出Excel失败"
);
}
catch
(
IOException
e
)
{
LOGGER
.
error
(
"生成临时文件Excel异常"
+
e
.
getMessage
(),
e
);
throw
new
ExportException
(
BookBizException
.
ERROR
,
"导出Excel失败"
);
}
return
fileUrl
;
}
/**
* excel数据导出
* @param registerDtos
* @param dataStyle
* @param k
* @param rowIndex
* @param sheet
* @param optionList
* @param df
*/
private
void
exportExcelByDataList
(
List
<
BmRegisterDTO
>
registerDtos
,
CellStyle
dataStyle
,
int
k
,
int
rowIndex
,
SXSSFSheet
sheet
,
List
<
AdvertisingBmOption
>
optionList
,
SimpleDateFormat
df
){
LOGGER
.
info
(
"excel数据导出"
);
for
(
BmRegisterDTO
registerDto
:
registerDtos
)
{
SXSSFRow
srow
=
sheet
.
createRow
(++
rowIndex
);
SXSSFCell
cell0
=
srow
.
createCell
(
0
);
cell0
.
setCellStyle
(
dataStyle
);
cell0
.
setCellValue
(
k
++);
SXSSFCell
cell1
=
srow
.
createCell
(
1
);
cell1
.
setCellStyle
(
dataStyle
);
cell1
.
setCellValue
(
registerDto
.
getNickName
()
==
null
?
""
:
registerDto
.
getNickName
());
SXSSFCell
cell2
=
srow
.
createCell
(
2
);
cell2
.
setCellStyle
(
dataStyle
);
cell2
.
setCellValue
(
registerDto
.
getCreateTime
()
!=
null
?
df
.
format
(
registerDto
.
getCreateTime
())
:
""
);
for
(
int
m
=
0
;
m
<
optionList
.
size
();
m
++)
{
AdvertisingBmOption
appOption
=
optionList
.
get
(
m
);
Long
optionId
=
appOption
.
getId
();
String
optionValue
=
""
;
for
(
BmRegisterItemDTO
dto
:
registerDto
.
getRegisterItemDTOS
())
{
if
(
optionId
.
equals
(
dto
.
getOptionId
()))
{
optionValue
=
dto
.
getOptionValue
();
optionValue
=
StringUtil
.
isEmpty
(
optionValue
)
?
""
:
optionValue
;
}
}
SXSSFCell
cellm
=
srow
.
createCell
(
m
+
3
);
cellm
.
setCellStyle
(
dataStyle
);
cellm
.
setCellValue
(
optionValue
);
}
}
}
}
pcloud-service-book/src/main/java/com/pcloud/book/advertising/dao/AdvertisingSpaceDao.java
View file @
fa773c80
package
com
.
pcloud
.
book
.
advertising
.
dao
;
package
com
.
pcloud
.
book
.
advertising
.
dao
;
import
java.util.List
;
import
java.util.Map
;
import
com.pcloud.book.advertising.dto.AdvertisingSpaceDTO
;
import
com.pcloud.book.advertising.dto.AdvertisingSpaceDTO
;
import
com.pcloud.book.advertising.entity.AdvertisingSpace
;
import
com.pcloud.book.advertising.entity.AdvertisingSpace
;
import
com.pcloud.common.core.dao.BaseDao
;
import
com.pcloud.common.core.dao.BaseDao
;
import
java.util.List
;
import
java.util.Map
;
/**
/**
* Description 广告位数据访问层接口
* Description 广告位数据访问层接口
* @author PENG
* @author PENG
...
@@ -49,6 +50,18 @@ public interface AdvertisingSpaceDao extends BaseDao<AdvertisingSpace> {
...
@@ -49,6 +50,18 @@ public interface AdvertisingSpaceDao extends BaseDao<AdvertisingSpace> {
List
<
AdvertisingSpaceDTO
>
getDTOByBookId
(
Map
<
String
,
Object
>
paramMap
);
List
<
AdvertisingSpaceDTO
>
getDTOByBookId
(
Map
<
String
,
Object
>
paramMap
);
/**
/**
* 未转码的文件
* @return
*/
public
List
<
AdvertisingSpace
>
getUnConvertFile
(
String
adDetailFileId
);
/**
* 根据fileId更新
* @param advertisingSpace
*/
public
void
updateByFileId
(
AdvertisingSpace
advertisingSpace
);
/**
* 更新测试状态
* 更新测试状态
* @param isTest
* @param isTest
* @param id
* @param id
...
@@ -59,4 +72,11 @@ public interface AdvertisingSpaceDao extends BaseDao<AdvertisingSpace> {
...
@@ -59,4 +72,11 @@ public interface AdvertisingSpaceDao extends BaseDao<AdvertisingSpace> {
* 根据id集合获取
* 根据id集合获取
*/
*/
List
<
AdvertisingSpace
>
getByIds
(
List
<
Long
>
ids
);
List
<
AdvertisingSpace
>
getByIds
(
List
<
Long
>
ids
);
/**
* 获取广告id列表
* @param id
* @return
*/
List
<
Long
>
getAdIdsByMasterId
(
Long
id
);
}
}
pcloud-service-book/src/main/java/com/pcloud/book/advertising/dao/BmOptionDao.java
0 → 100644
View file @
fa773c80
package
com
.
pcloud
.
book
.
advertising
.
dao
;
import
com.pcloud.book.advertising.entity.AdvertisingBmOption
;
import
com.pcloud.common.core.dao.BaseDao
;
import
java.util.List
;
import
java.util.Map
;
/**
* @描述:报名选项
* @作者:zhuyajie
* @创建时间:20:05 2019/6/27
* @版本:1.0
*/
public
interface
BmOptionDao
extends
BaseDao
<
AdvertisingBmOption
>
{
/**
* 获取报名列表
* @param adId
* @return
*/
List
<
AdvertisingBmOption
>
getByAdId
(
Long
adId
);
/**
* 批量删除
* @param optionIds
*/
void
deleteByIds
(
List
<
Long
>
optionIds
);
/**
* 根据广告id获取选项id列表
* @param adId
* @return
*/
List
<
Long
>
getOptionIdsByAdId
(
Long
adId
);
}
pcloud-service-book/src/main/java/com/pcloud/book/advertising/dao/BmOptionItemDao.java
0 → 100644
View file @
fa773c80
package
com
.
pcloud
.
book
.
advertising
.
dao
;
import
com.pcloud.book.advertising.entity.AdvertisingBmOptionItem
;
import
com.pcloud.common.core.dao.BaseDao
;
/**
* @描述:报名选项清单
* @作者:zhuyajie
* @创建时间:20:06 2019/6/27
* @版本:1.0
*/
public
interface
BmOptionItemDao
extends
BaseDao
<
AdvertisingBmOptionItem
>
{
/**
* 根据选项ID删除选项清单
* @param optionId 选项ID
* @return
*/
long
deleteByOptionId
(
Long
optionId
);
/**
* 获取选项值
* @param optionItemId
* @return
*/
String
getValueById
(
Long
optionItemId
);
}
pcloud-service-book/src/main/java/com/pcloud/book/advertising/dao/BmRegisterDao.java
0 → 100644
View file @
fa773c80
package
com
.
pcloud
.
book
.
advertising
.
dao
;
import
com.pcloud.book.advertising.dto.BmRegisterDTO
;
import
com.pcloud.book.advertising.entity.AdvertisingBmRegister
;
import
com.pcloud.common.core.dao.BaseDao
;
import
java.util.List
;
import
java.util.Map
;
/**
* @描述:报名记录
* @作者:zhuyajie
* @创建时间:20:06 2019/6/27
* @版本:1.0
*/
public
interface
BmRegisterDao
extends
BaseDao
<
AdvertisingBmRegister
>
{
/**
* 获取用户报名信息
* @param paramMap
* @return
*/
List
<
BmRegisterDTO
>
getDetailByUser
(
Map
<
String
,
Object
>
paramMap
);
/**
* 获取报名数量
* @param adId
* @return
*/
Long
getRegisterCountByAdId
(
Long
adId
,
String
statisMonth
);
/**
* 报名数量
* @param adIdList
* @return
*/
Long
getRegisterCountByAdIds
(
List
<
Long
>
adIdList
);
/**
* 查报名信息
* @param adId
* @return
*/
List
<
BmRegisterDTO
>
exportRegisterInfoById
(
Long
adId
,
Long
qrcodeId
);
/**
* 获取微信群报名次数
* @param adId
* @param statisMonth
* @param qrcodeId
* @return
*/
Long
getRegisterCountByAdIdQrcodeId
(
Long
adId
,
String
statisMonth
,
Long
qrcodeId
);
}
pcloud-service-book/src/main/java/com/pcloud/book/advertising/dao/BmRegisterItemDao.java
0 → 100644
View file @
fa773c80
package
com
.
pcloud
.
book
.
advertising
.
dao
;
import
com.pcloud.book.advertising.entity.AdvertisingBmRegisterItem
;
import
com.pcloud.common.core.dao.BaseDao
;
/**
* @描述:报名选项记录
* @作者:zhuyajie
* @创建时间:20:05 2019/6/27
* @版本:1.0
*/
public
interface
BmRegisterItemDao
extends
BaseDao
<
AdvertisingBmRegisterItem
>
{
}
pcloud-service-book/src/main/java/com/pcloud/book/advertising/dao/impl/AdvertisingSpaceDaoImpl.java
View file @
fa773c80
...
@@ -60,6 +60,16 @@ public class AdvertisingSpaceDaoImpl extends BaseDaoImpl<AdvertisingSpace> imple
...
@@ -60,6 +60,16 @@ public class AdvertisingSpaceDaoImpl extends BaseDaoImpl<AdvertisingSpace> imple
}
}
@Override
@Override
public
List
<
AdvertisingSpace
>
getUnConvertFile
(
String
adDetailFileId
)
{
return
getSessionTemplate
().
selectList
(
getStatement
(
"getUnConvertFile"
),
adDetailFileId
);
}
@Override
public
void
updateByFileId
(
AdvertisingSpace
advertisingSpace
)
{
getSessionTemplate
().
update
(
getStatement
(
"updateByFileId"
),
advertisingSpace
);
}
@Override
public
void
updateTestStatus
(
Boolean
isTest
,
Long
id
)
{
public
void
updateTestStatus
(
Boolean
isTest
,
Long
id
)
{
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
map
.
put
(
"id"
,
id
);
map
.
put
(
"id"
,
id
);
...
@@ -73,4 +83,9 @@ public class AdvertisingSpaceDaoImpl extends BaseDaoImpl<AdvertisingSpace> imple
...
@@ -73,4 +83,9 @@ public class AdvertisingSpaceDaoImpl extends BaseDaoImpl<AdvertisingSpace> imple
map
.
put
(
"ids"
,
ids
);
map
.
put
(
"ids"
,
ids
);
return
getSessionTemplate
().
selectList
(
getStatement
(
"getByIds"
),
map
);
return
getSessionTemplate
().
selectList
(
getStatement
(
"getByIds"
),
map
);
}
}
@Override
public
List
<
Long
>
getAdIdsByMasterId
(
Long
masterId
)
{
return
getSessionTemplate
().
selectList
(
getStatement
(
"getAdIdsByMasterId"
),
masterId
);
}
}
}
pcloud-service-book/src/main/java/com/pcloud/book/advertising/dao/impl/BmOptionDaoImpl.java
0 → 100644
View file @
fa773c80
package
com
.
pcloud
.
book
.
advertising
.
dao
.
impl
;
import
com.pcloud.book.advertising.dao.BmOptionDao
;
import
com.pcloud.book.advertising.entity.AdvertisingBmOption
;
import
com.pcloud.common.core.dao.BaseDaoImpl
;
import
org.springframework.stereotype.Component
;
import
java.util.List
;
/**
* @描述:报名选项
* @作者:zhuyajie
* @创建时间:20:14 2019/6/27
* @版本:1.0
*/
@Component
(
"bmOptionDao"
)
public
class
BmOptionDaoImpl
extends
BaseDaoImpl
<
AdvertisingBmOption
>
implements
BmOptionDao
{
@Override
public
List
<
AdvertisingBmOption
>
getByAdId
(
Long
adId
)
{
return
getSessionTemplate
().
selectList
(
getStatement
(
"getByAdId"
),
adId
);
}
@Override
public
void
deleteByIds
(
List
<
Long
>
optionIds
)
{
getSessionTemplate
().
delete
(
getStatement
(
"deleteByIds"
),
optionIds
);
}
@Override
public
List
<
Long
>
getOptionIdsByAdId
(
Long
adId
)
{
return
getSessionTemplate
().
selectList
(
getStatement
(
"getOptionIdsByAdId"
),
adId
);
}
}
pcloud-service-book/src/main/java/com/pcloud/book/advertising/dao/impl/BmOptionItemDaoImpl.java
0 → 100644
View file @
fa773c80
package
com
.
pcloud
.
book
.
advertising
.
dao
.
impl
;
import
com.pcloud.book.advertising.dao.BmOptionItemDao
;
import
com.pcloud.book.advertising.entity.AdvertisingBmOptionItem
;
import
com.pcloud.common.core.dao.BaseDaoImpl
;
import
org.springframework.stereotype.Component
;
/**
* @描述:报名选项清单
* @作者:zhuyajie
* @创建时间:20:16 2019/6/27
* @版本:1.0
*/
@Component
(
"bmOptionItemDao"
)
public
class
BmOptionItemDaoImpl
extends
BaseDaoImpl
<
AdvertisingBmOptionItem
>
implements
BmOptionItemDao
{
/**
* 根据选项ID删除选项清单
*/
@Override
public
long
deleteByOptionId
(
Long
optionId
)
{
return
super
.
getSqlSession
().
delete
(
getStatement
(
"deleteByOptionId"
),
optionId
);
}
@Override
public
String
getValueById
(
Long
optionItemId
)
{
return
getSessionTemplate
().
selectOne
(
getStatement
(
"getValueById"
),
optionItemId
);
}
}
pcloud-service-book/src/main/java/com/pcloud/book/advertising/dao/impl/BmRegisterDaoImpl.java
0 → 100644
View file @
fa773c80
package
com
.
pcloud
.
book
.
advertising
.
dao
.
impl
;
import
com.pcloud.book.advertising.dao.BmRegisterDao
;
import
com.pcloud.book.advertising.dto.BmRegisterDTO
;
import
com.pcloud.book.advertising.entity.AdvertisingBmRegister
;
import
com.pcloud.common.core.dao.BaseDaoImpl
;
import
org.springframework.stereotype.Component
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
/**
* @描述:报名记录
* @作者:zhuyajie
* @创建时间:20:06 2019/6/27
* @版本:1.0
*/
@Component
(
"bmRegisterDao"
)
public
class
BmRegisterDaoImpl
extends
BaseDaoImpl
<
AdvertisingBmRegister
>
implements
BmRegisterDao
{
@Override
public
List
<
BmRegisterDTO
>
getDetailByUser
(
Map
<
String
,
Object
>
paramMap
)
{
return
getSessionTemplate
().
selectList
(
getStatement
(
"getDetailByUser"
),
paramMap
);
}
@Override
public
Long
getRegisterCountByAdId
(
Long
adId
,
String
statisMonth
)
{
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
map
.
put
(
"adId"
,
adId
);
map
.
put
(
"statisMonth"
,
statisMonth
);
return
getSessionTemplate
().
selectOne
(
getStatement
(
"getRegisterCountByAdId"
),
map
);
}
@Override
public
Long
getRegisterCountByAdIds
(
List
<
Long
>
adIdList
)
{
return
getSessionTemplate
().
selectOne
(
getStatement
(
"getRegisterCountByAdIds"
),
adIdList
);
}
@Override
public
List
<
BmRegisterDTO
>
exportRegisterInfoById
(
Long
adId
,
Long
qrcodeId
)
{
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
map
.
put
(
"adId"
,
adId
);
map
.
put
(
"qrcodeId"
,
qrcodeId
);
return
getSessionTemplate
().
selectList
(
getStatement
(
"exportRegisterInfoById"
),
map
);
}
@Override
public
Long
getRegisterCountByAdIdQrcodeId
(
Long
adId
,
String
statisMonth
,
Long
qrcodeId
)
{
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
map
.
put
(
"adId"
,
adId
);
map
.
put
(
"statisMonth"
,
statisMonth
);
map
.
put
(
"qrcodeId"
,
qrcodeId
);
return
getSessionTemplate
().
selectOne
(
getStatement
(
"getRegisterCountByAdIdQrcodeId"
),
map
);
}
}
pcloud-service-book/src/main/java/com/pcloud/book/advertising/dao/impl/BmRegisterItemDaoImpl.java
0 → 100644
View file @
fa773c80
package
com
.
pcloud
.
book
.
advertising
.
dao
.
impl
;
import
com.pcloud.book.advertising.dao.BmRegisterItemDao
;
import
com.pcloud.book.advertising.entity.AdvertisingBmRegisterItem
;
import
com.pcloud.common.core.dao.BaseDaoImpl
;
import
org.springframework.stereotype.Component
;
/**
* @描述:报名选项记录
* @作者:zhuyajie
* @创建时间:20:19 2019/6/27
* @版本:1.0
*/
@Component
(
"bmRegisterItemDao"
)
public
class
BmRegisterItemDaoImpl
extends
BaseDaoImpl
<
AdvertisingBmRegisterItem
>
implements
BmRegisterItemDao
{
}
pcloud-service-book/src/main/java/com/pcloud/book/advertising/dto/AdvertisingMasterDTO.java
View file @
fa773c80
...
@@ -61,6 +61,15 @@ public class AdvertisingMasterDTO extends BaseDto {
...
@@ -61,6 +61,15 @@ public class AdvertisingMasterDTO extends BaseDto {
* 累积消费
* 累积消费
*/
*/
private
BigDecimal
totalIncome
;
private
BigDecimal
totalIncome
;
/**
* 报名量
*/
private
Long
registerNum
;
/**
* 报名率
*/
private
BigDecimal
registerRate
;
public
Long
getId
()
{
public
Long
getId
()
{
return
id
;
return
id
;
...
@@ -144,6 +153,22 @@ public class AdvertisingMasterDTO extends BaseDto {
...
@@ -144,6 +153,22 @@ public class AdvertisingMasterDTO extends BaseDto {
this
.
totalIncome
=
totalIncome
;
this
.
totalIncome
=
totalIncome
;
}
}
public
Long
getRegisterNum
()
{
return
registerNum
;
}
public
void
setRegisterNum
(
Long
registerNum
)
{
this
.
registerNum
=
registerNum
;
}
public
BigDecimal
getRegisterRate
()
{
return
registerRate
;
}
public
void
setRegisterRate
(
BigDecimal
registerRate
)
{
this
.
registerRate
=
registerRate
;
}
@Override
@Override
public
String
toString
()
{
public
String
toString
()
{
return
"AdvertisingMasterDTO{"
+
return
"AdvertisingMasterDTO{"
+
...
@@ -157,6 +182,8 @@ public class AdvertisingMasterDTO extends BaseDto {
...
@@ -157,6 +182,8 @@ public class AdvertisingMasterDTO extends BaseDto {
", clickNum="
+
clickNum
+
", clickNum="
+
clickNum
+
", clickRate="
+
clickRate
+
", clickRate="
+
clickRate
+
", totalIncome="
+
totalIncome
+
", totalIncome="
+
totalIncome
+
"} "
+
super
.
toString
();
", registerNum="
+
registerNum
+
", registerRate="
+
registerRate
+
'}'
;
}
}
}
}
\ No newline at end of file
pcloud-service-book/src/main/java/com/pcloud/book/advertising/dto/AdvertisingSpaceDTO.java
View file @
fa773c80
...
@@ -2,7 +2,10 @@ package com.pcloud.book.advertising.dto;
...
@@ -2,7 +2,10 @@ package com.pcloud.book.advertising.dto;
import
java.math.BigDecimal
;
import
java.math.BigDecimal
;
import
java.util.Date
;
import
java.util.Date
;
import
java.util.List
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.pcloud.book.advertising.entity.AdvertisingBmOption
;
import
com.pcloud.common.dto.BaseDto
;
import
com.pcloud.common.dto.BaseDto
;
/**
/**
...
@@ -194,6 +197,93 @@ public class AdvertisingSpaceDTO extends BaseDto {
...
@@ -194,6 +197,93 @@ public class AdvertisingSpaceDTO extends BaseDto {
* 运营ID
* 运营ID
*/
*/
private
Long
channelId
;
private
Long
channelId
;
/**
*广告详情方式
*/
private
String
adDetailMode
;
/**
*广告详情封面
*/
private
String
adDetailCoverPic
;
/**
*广告详情优惠图
*/
private
String
adDetailWelfarePic
;
/**
*广告详情介绍
*/
private
String
adDetailInfo
;
/**
*广告详情文件ID
*/
private
String
adDetailFileId
;
/**
*广告详情文件转码状态
*/
private
Integer
adDetailFileConvertState
;
/**
*广告详情文件路径
*/
private
String
adDetailFileUrl
;
/**
*广告详情文件标题
*/
private
String
adDetailTitle
;
/**
*广告详情文件试播秒数
*/
private
Long
adDetailFilePilotSecond
;
/**
*广告详情文件试播路径
*/
private
String
adDetailFilePilotUrl
;
/**
*广告详情文件试播结束提示
*/
private
String
adDetailFilePilotFinishTip
;
/**
*广告报名表单是否校验手机号
*/
private
Boolean
adFormMobileCheck
;
/**
*广告报名表单备注
*/
private
String
adFormRemark
;
/**
*广告报名表单提交按钮
*/
private
String
adFormButton
;
/**
*广告报名表单跳转链接
*/
private
String
adFormLink
;
/**
* 报名选项设置
*/
private
List
<
AdvertisingBmOption
>
advertisingBmOptionList
;
/**
* 报名量
*/
private
Long
registerNum
;
/**
* 报名率
*/
private
BigDecimal
registerRate
;
/**
* 广告详情文件大小
*/
private
Long
adDetailFileSize
;
/**
* 广告详情文件名称
*/
private
String
adDetailFileName
;
/**
* 广告详情文件时长
*/
private
Long
adDetailFileDuration
;
public
Long
getId
()
{
public
Long
getId
()
{
return
id
;
return
id
;
...
@@ -478,6 +568,125 @@ public class AdvertisingSpaceDTO extends BaseDto {
...
@@ -478,6 +568,125 @@ public class AdvertisingSpaceDTO extends BaseDto {
this
.
clickUserNum
=
clickUserNum
;
this
.
clickUserNum
=
clickUserNum
;
}
}
public
String
getAdDetailMode
()
{
return
adDetailMode
;
}
public
void
setAdDetailMode
(
String
adDetailMode
)
{
this
.
adDetailMode
=
adDetailMode
;
}
public
String
getAdDetailCoverPic
()
{
return
adDetailCoverPic
;
}
public
void
setAdDetailCoverPic
(
String
adDetailCoverPic
)
{
this
.
adDetailCoverPic
=
adDetailCoverPic
;
}
public
String
getAdDetailWelfarePic
()
{
return
adDetailWelfarePic
;
}
public
void
setAdDetailWelfarePic
(
String
adDetailWelfarePic
)
{
this
.
adDetailWelfarePic
=
adDetailWelfarePic
;
}
public
String
getAdDetailInfo
()
{
return
adDetailInfo
;
}
public
void
setAdDetailInfo
(
String
adDetailInfo
)
{
this
.
adDetailInfo
=
adDetailInfo
;
}
public
String
getAdDetailFileId
()
{
return
adDetailFileId
;
}
public
void
setAdDetailFileId
(
String
adDetailFileId
)
{
this
.
adDetailFileId
=
adDetailFileId
;
}
public
Integer
getAdDetailFileConvertState
()
{
return
adDetailFileConvertState
;
}
public
void
setAdDetailFileConvertState
(
Integer
adDetailFileConvertState
)
{
this
.
adDetailFileConvertState
=
adDetailFileConvertState
;
}
public
String
getAdDetailFileUrl
()
{
return
adDetailFileUrl
;
}
public
void
setAdDetailFileUrl
(
String
adDetailFileUrl
)
{
this
.
adDetailFileUrl
=
adDetailFileUrl
;
}
public
String
getAdDetailTitle
()
{
return
adDetailTitle
;
}
public
void
setAdDetailTitle
(
String
adDetailTitle
)
{
this
.
adDetailTitle
=
adDetailTitle
;
}
public
Long
getAdDetailFilePilotSecond
()
{
return
adDetailFilePilotSecond
;
}
public
void
setAdDetailFilePilotSecond
(
Long
adDetailFilePilotSecond
)
{
this
.
adDetailFilePilotSecond
=
adDetailFilePilotSecond
;
}
public
String
getAdDetailFilePilotUrl
()
{
return
adDetailFilePilotUrl
;
}
public
void
setAdDetailFilePilotUrl
(
String
adDetailFilePilotUrl
)
{
this
.
adDetailFilePilotUrl
=
adDetailFilePilotUrl
;
}
public
String
getAdDetailFilePilotFinishTip
()
{
return
adDetailFilePilotFinishTip
;
}
public
void
setAdDetailFilePilotFinishTip
(
String
adDetailFilePilotFinishTip
)
{
this
.
adDetailFilePilotFinishTip
=
adDetailFilePilotFinishTip
;
}
public
Boolean
getAdFormMobileCheck
()
{
return
adFormMobileCheck
;
}
public
void
setAdFormMobileCheck
(
Boolean
adFormMobileCheck
)
{
this
.
adFormMobileCheck
=
adFormMobileCheck
;
}
public
String
getAdFormRemark
()
{
return
adFormRemark
;
}
public
void
setAdFormRemark
(
String
adFormRemark
)
{
this
.
adFormRemark
=
adFormRemark
;
}
public
String
getAdFormButton
()
{
return
adFormButton
;
}
public
void
setAdFormButton
(
String
adFormButton
)
{
this
.
adFormButton
=
adFormButton
;
}
public
String
getAdFormLink
()
{
return
adFormLink
;
}
public
void
setAdFormLink
(
String
adFormLink
)
{
this
.
adFormLink
=
adFormLink
;
}
public
Boolean
getIsTest
()
{
public
Boolean
getIsTest
()
{
return
isTest
;
return
isTest
;
...
@@ -487,6 +696,54 @@ public class AdvertisingSpaceDTO extends BaseDto {
...
@@ -487,6 +696,54 @@ public class AdvertisingSpaceDTO extends BaseDto {
this
.
isTest
=
isTest
;
this
.
isTest
=
isTest
;
}
}
public
List
<
AdvertisingBmOption
>
getAdvertisingBmOptionList
()
{
return
advertisingBmOptionList
;
}
public
void
setAdvertisingBmOptionList
(
List
<
AdvertisingBmOption
>
advertisingBmOptionList
)
{
this
.
advertisingBmOptionList
=
advertisingBmOptionList
;
}
public
Long
getRegisterNum
()
{
return
registerNum
;
}
public
void
setRegisterNum
(
Long
registerNum
)
{
this
.
registerNum
=
registerNum
;
}
public
BigDecimal
getRegisterRate
()
{
return
registerRate
;
}
public
void
setRegisterRate
(
BigDecimal
registerRate
)
{
this
.
registerRate
=
registerRate
;
}
public
Long
getAdDetailFileSize
()
{
return
adDetailFileSize
;
}
public
void
setAdDetailFileSize
(
Long
adDetailFileSize
)
{
this
.
adDetailFileSize
=
adDetailFileSize
;
}
public
String
getAdDetailFileName
()
{
return
adDetailFileName
;
}
public
void
setAdDetailFileName
(
String
adDetailFileName
)
{
this
.
adDetailFileName
=
adDetailFileName
;
}
public
Long
getAdDetailFileDuration
()
{
return
adDetailFileDuration
;
}
public
void
setAdDetailFileDuration
(
Long
adDetailFileDuration
)
{
this
.
adDetailFileDuration
=
adDetailFileDuration
;
}
@Override
@Override
public
String
toString
()
{
public
String
toString
()
{
return
"AdvertisingSpaceDTO{"
+
return
"AdvertisingSpaceDTO{"
+
...
@@ -526,6 +783,27 @@ public class AdvertisingSpaceDTO extends BaseDto {
...
@@ -526,6 +783,27 @@ public class AdvertisingSpaceDTO extends BaseDto {
", agentName='"
+
agentName
+
'\''
+
", agentName='"
+
agentName
+
'\''
+
", adviserId="
+
adviserId
+
", adviserId="
+
adviserId
+
", channelId="
+
channelId
+
", channelId="
+
channelId
+
"} "
+
super
.
toString
();
", adDetailMode='"
+
adDetailMode
+
'\''
+
", adDetailCoverPic='"
+
adDetailCoverPic
+
'\''
+
", adDetailWelfarePic='"
+
adDetailWelfarePic
+
'\''
+
", adDetailInfo='"
+
adDetailInfo
+
'\''
+
", adDetailFileId='"
+
adDetailFileId
+
'\''
+
", adDetailFileConvertState="
+
adDetailFileConvertState
+
", adDetailFileUrl='"
+
adDetailFileUrl
+
'\''
+
", adDetailTitle='"
+
adDetailTitle
+
'\''
+
", adDetailFilePilotSecond="
+
adDetailFilePilotSecond
+
", adDetailFilePilotUrl='"
+
adDetailFilePilotUrl
+
'\''
+
", adDetailFilePilotFinishTip='"
+
adDetailFilePilotFinishTip
+
'\''
+
", adFormMobileCheck="
+
adFormMobileCheck
+
", adFormRemark='"
+
adFormRemark
+
'\''
+
", adFormButton='"
+
adFormButton
+
'\''
+
", adFormLink='"
+
adFormLink
+
'\''
+
", advertisingBmOptionList="
+
advertisingBmOptionList
+
", registerNum="
+
registerNum
+
", registerRate="
+
registerRate
+
", adDetailFileSize="
+
adDetailFileSize
+
", adDetailFileName='"
+
adDetailFileName
+
'\''
+
", adDetailFileDuration="
+
adDetailFileDuration
+
'}'
;
}
}
}
}
\ No newline at end of file
pcloud-service-book/src/main/java/com/pcloud/book/advertising/dto/BmRegisterDTO.java
0 → 100644
View file @
fa773c80
package
com
.
pcloud
.
book
.
advertising
.
dto
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.pcloud.common.dto.BaseDto
;
import
java.util.Date
;
import
java.util.List
;
/**
* @描述:用户报名信息
* @作者:zhuyajie
* @创建时间:20:19 2019/6/28
* @版本:1.0
*/
public
class
BmRegisterDTO
extends
BaseDto
{
private
Long
id
;
/**
*用户id
*/
private
Long
userId
;
/**
*广告id
*/
private
Long
adId
;
/**
*用户昵称
*/
private
String
nickName
;
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
private
Date
createTime
;
/**
* 报名选项信息
*/
private
List
<
BmRegisterItemDTO
>
registerItemDTOS
;
/**
* 群二维码id
*/
private
Long
qrcodeId
;
public
Long
getId
()
{
return
id
;
}
public
void
setId
(
Long
id
)
{
this
.
id
=
id
;
}
public
Long
getUserId
()
{
return
userId
;
}
public
void
setUserId
(
Long
userId
)
{
this
.
userId
=
userId
;
}
public
Long
getAdId
()
{
return
adId
;
}
public
void
setAdId
(
Long
adId
)
{
this
.
adId
=
adId
;
}
public
String
getNickName
()
{
return
nickName
;
}
public
void
setNickName
(
String
nickName
)
{
this
.
nickName
=
nickName
;
}
public
Date
getCreateTime
()
{
return
createTime
;
}
public
void
setCreateTime
(
Date
createTime
)
{
this
.
createTime
=
createTime
;
}
public
List
<
BmRegisterItemDTO
>
getRegisterItemDTOS
()
{
return
registerItemDTOS
;
}
public
void
setRegisterItemDTOS
(
List
<
BmRegisterItemDTO
>
registerItemDTOS
)
{
this
.
registerItemDTOS
=
registerItemDTOS
;
}
public
Long
getQrcodeId
()
{
return
qrcodeId
;
}
public
void
setQrcodeId
(
Long
qrcodeId
)
{
this
.
qrcodeId
=
qrcodeId
;
}
@Override
public
String
toString
()
{
return
"BmRegisterDTO{"
+
"id="
+
id
+
", userId="
+
userId
+
", adId="
+
adId
+
", nickName='"
+
nickName
+
'\''
+
", createTime="
+
createTime
+
", registerItemDTOS="
+
registerItemDTOS
+
", qrcodeId="
+
qrcodeId
+
'}'
;
}
}
pcloud-service-book/src/main/java/com/pcloud/book/advertising/dto/BmRegisterItemDTO.java
0 → 100644
View file @
fa773c80
package
com
.
pcloud
.
book
.
advertising
.
dto
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.pcloud.common.dto.BaseDto
;
import
java.util.Date
;
/**
* @描述:报名选项信息
* @作者:zhuyajie
* @创建时间:20:22 2019/6/28
* @版本:1.0
*/
public
class
BmRegisterItemDTO
extends
BaseDto
{
/**
*报名记录ID
*/
private
Long
registerId
;
/**
*选项ID
*/
private
Long
optionId
;
/**
*选项清单ID
*/
private
Long
optionItemId
;
/**
*选项值
*/
private
String
optionValue
;
public
Long
getRegisterId
()
{
return
registerId
;
}
public
void
setRegisterId
(
Long
registerId
)
{
this
.
registerId
=
registerId
;
}
public
Long
getOptionId
()
{
return
optionId
;
}
public
void
setOptionId
(
Long
optionId
)
{
this
.
optionId
=
optionId
;
}
public
Long
getOptionItemId
()
{
return
optionItemId
;
}
public
void
setOptionItemId
(
Long
optionItemId
)
{
this
.
optionItemId
=
optionItemId
;
}
public
String
getOptionValue
()
{
return
optionValue
;
}
public
void
setOptionValue
(
String
optionValue
)
{
this
.
optionValue
=
optionValue
;
}
@Override
public
String
toString
()
{
return
"BmRegisterItemDTO{"
+
"registerId="
+
registerId
+
", optionId="
+
optionId
+
", optionItemId="
+
optionItemId
+
", optionValue='"
+
optionValue
+
'\''
+
'}'
;
}
}
pcloud-service-book/src/main/java/com/pcloud/book/advertising/dto/OptionType.java
0 → 100644
View file @
fa773c80
package
com
.
pcloud
.
book
.
advertising
.
dto
;
import
java.io.Serializable
;
/**
*
* @ClassName: OptionType
* @Description: 选项类型
* @author Michael
* @date 2017年2月17日 下午12:50:47
*
*/
public
class
OptionType
implements
Serializable
{
private
static
final
long
serialVersionUID
=
-
3507316325248166878L
;
/**
* 选项编码
*/
private
String
value
;
/**
* 选项文字
*/
private
String
text
;
public
String
getValue
()
{
return
value
;
}
public
void
setValue
(
String
value
)
{
this
.
value
=
value
;
}
public
String
getText
()
{
return
text
;
}
public
void
setText
(
String
text
)
{
this
.
text
=
text
;
}
public
OptionType
(
String
value
,
String
text
)
{
super
();
this
.
value
=
value
;
this
.
text
=
text
;
}
public
OptionType
()
{
}
@Override
public
String
toString
()
{
return
"OptionType [value="
+
value
+
", text="
+
text
+
"]"
;
}
}
pcloud-service-book/src/main/java/com/pcloud/book/advertising/entity/AdvertisingBmOption.java
0 → 100644
View file @
fa773c80
package
com
.
pcloud
.
book
.
advertising
.
entity
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.pcloud.common.entity.BaseEntity
;
import
java.util.Date
;
import
java.util.List
;
/**
* 报表选项
*/
public
class
AdvertisingBmOption
extends
BaseEntity
{
/**
*广告id
*/
private
Long
adId
;
/**
*排序值
*/
private
Long
seq
;
/**
*选项名称
*/
private
String
itemTitle
;
/**
*选项描述
*/
private
String
itemDesc
;
/**
*选项类型
*/
private
String
itemInputType
;
/**
*选项数据类型
*/
private
String
itemDataType
;
/**
*是否必填
*/
private
Boolean
required
;
private
Long
createUser
;
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
private
Date
createTime
;
private
Long
updateUser
;
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
private
Date
updateTime
;
/**
* 选项列表
*/
private
List
<
AdvertisingBmOptionItem
>
optionItem
;
public
Long
getAdId
()
{
return
adId
;
}
public
void
setAdId
(
Long
adId
)
{
this
.
adId
=
adId
;
}
public
Long
getSeq
()
{
return
seq
;
}
public
void
setSeq
(
Long
seq
)
{
this
.
seq
=
seq
;
}
public
String
getItemTitle
()
{
return
itemTitle
;
}
public
void
setItemTitle
(
String
itemTitle
)
{
this
.
itemTitle
=
itemTitle
==
null
?
null
:
itemTitle
.
trim
();
}
public
String
getItemDesc
()
{
return
itemDesc
;
}
public
void
setItemDesc
(
String
itemDesc
)
{
this
.
itemDesc
=
itemDesc
==
null
?
null
:
itemDesc
.
trim
();
}
public
String
getItemInputType
()
{
return
itemInputType
;
}
public
void
setItemInputType
(
String
itemInputType
)
{
this
.
itemInputType
=
itemInputType
==
null
?
null
:
itemInputType
.
trim
();
}
public
String
getItemDataType
()
{
return
itemDataType
;
}
public
void
setItemDataType
(
String
itemDataType
)
{
this
.
itemDataType
=
itemDataType
==
null
?
null
:
itemDataType
.
trim
();
}
public
Boolean
getRequired
()
{
return
required
;
}
public
void
setRequired
(
Boolean
required
)
{
this
.
required
=
required
;
}
public
Long
getCreateUser
()
{
return
createUser
;
}
public
void
setCreateUser
(
Long
createUser
)
{
this
.
createUser
=
createUser
;
}
public
Date
getCreateTime
()
{
return
createTime
;
}
public
void
setCreateTime
(
Date
createTime
)
{
this
.
createTime
=
createTime
;
}
public
Long
getUpdateUser
()
{
return
updateUser
;
}
public
void
setUpdateUser
(
Long
updateUser
)
{
this
.
updateUser
=
updateUser
;
}
public
Date
getUpdateTime
()
{
return
updateTime
;
}
public
void
setUpdateTime
(
Date
updateTime
)
{
this
.
updateTime
=
updateTime
;
}
public
List
<
AdvertisingBmOptionItem
>
getOptionItem
()
{
return
optionItem
;
}
public
void
setOptionItem
(
List
<
AdvertisingBmOptionItem
>
optionItem
)
{
this
.
optionItem
=
optionItem
;
}
@Override
public
String
toString
()
{
return
"AdvertisingBmOption{"
+
"adId="
+
adId
+
", seq="
+
seq
+
", itemTitle='"
+
itemTitle
+
'\''
+
", itemDesc='"
+
itemDesc
+
'\''
+
", itemInputType='"
+
itemInputType
+
'\''
+
", itemDataType='"
+
itemDataType
+
'\''
+
", required="
+
required
+
", createUser="
+
createUser
+
", createTime="
+
createTime
+
", updateUser="
+
updateUser
+
", updateTime="
+
updateTime
+
", optionItem="
+
optionItem
+
'}'
;
}
}
\ No newline at end of file
pcloud-service-book/src/main/java/com/pcloud/book/advertising/entity/AdvertisingBmOptionItem.java
0 → 100644
View file @
fa773c80
package
com
.
pcloud
.
book
.
advertising
.
entity
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.pcloud.common.entity.BaseEntity
;
import
java.util.Date
;
/**
* 报名选项清单
*/
public
class
AdvertisingBmOptionItem
extends
BaseEntity
{
/**
*选项ID
*/
private
Long
optionId
;
/**
*父选项清单ID
*/
private
Long
parentId
;
/**
*选项文字
*/
private
String
text
;
/**
*选项图片url
*/
private
String
imgUrl
;
private
Long
createUser
;
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
private
Date
createTime
;
private
Long
updateUser
;
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
private
Date
updateTime
;
public
Long
getOptionId
()
{
return
optionId
;
}
public
void
setOptionId
(
Long
optionId
)
{
this
.
optionId
=
optionId
;
}
public
Long
getParentId
()
{
return
parentId
;
}
public
void
setParentId
(
Long
parentId
)
{
this
.
parentId
=
parentId
;
}
public
String
getText
()
{
return
text
;
}
public
void
setText
(
String
text
)
{
this
.
text
=
text
==
null
?
null
:
text
.
trim
();
}
public
String
getImgUrl
()
{
return
imgUrl
;
}
public
void
setImgUrl
(
String
imgUrl
)
{
this
.
imgUrl
=
imgUrl
==
null
?
null
:
imgUrl
.
trim
();
}
public
Long
getCreateUser
()
{
return
createUser
;
}
public
void
setCreateUser
(
Long
createUser
)
{
this
.
createUser
=
createUser
;
}
public
Date
getCreateTime
()
{
return
createTime
;
}
public
void
setCreateTime
(
Date
createTime
)
{
this
.
createTime
=
createTime
;
}
public
Long
getUpdateUser
()
{
return
updateUser
;
}
public
void
setUpdateUser
(
Long
updateUser
)
{
this
.
updateUser
=
updateUser
;
}
public
Date
getUpdateTime
()
{
return
updateTime
;
}
public
void
setUpdateTime
(
Date
updateTime
)
{
this
.
updateTime
=
updateTime
;
}
@Override
public
String
toString
()
{
return
"AdvertisingBmOptionItem{"
+
"optionId="
+
optionId
+
", parentId="
+
parentId
+
", text='"
+
text
+
'\''
+
", imgUrl='"
+
imgUrl
+
'\''
+
", createUser="
+
createUser
+
", createTime="
+
createTime
+
", updateUser="
+
updateUser
+
", updateTime="
+
updateTime
+
'}'
;
}
}
\ No newline at end of file
pcloud-service-book/src/main/java/com/pcloud/book/advertising/entity/AdvertisingBmRegister.java
0 → 100644
View file @
fa773c80
package
com
.
pcloud
.
book
.
advertising
.
entity
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.pcloud.common.entity.BaseEntity
;
import
java.util.Date
;
import
java.util.List
;
/**
* 报名记录
*/
public
class
AdvertisingBmRegister
extends
BaseEntity
{
/**
*用户id
*/
private
Long
userId
;
/**
*广告id
*/
private
Long
adId
;
/**
*用户昵称
*/
private
String
nickName
;
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
private
Date
createTime
;
/**
* 报名选项信息
*/
private
List
<
AdvertisingBmRegisterItem
>
bmRegisterItemList
;
/**
* 群二维码id
*/
private
Long
qrcodeId
;
public
Long
getUserId
()
{
return
userId
;
}
public
void
setUserId
(
Long
userId
)
{
this
.
userId
=
userId
;
}
public
Long
getAdId
()
{
return
adId
;
}
public
void
setAdId
(
Long
adId
)
{
this
.
adId
=
adId
;
}
public
String
getNickName
()
{
return
nickName
;
}
public
void
setNickName
(
String
nickName
)
{
this
.
nickName
=
nickName
==
null
?
null
:
nickName
.
trim
();
}
public
Date
getCreateTime
()
{
return
createTime
;
}
public
void
setCreateTime
(
Date
createTime
)
{
this
.
createTime
=
createTime
;
}
public
List
<
AdvertisingBmRegisterItem
>
getBmRegisterItemList
()
{
return
bmRegisterItemList
;
}
public
void
setBmRegisterItemList
(
List
<
AdvertisingBmRegisterItem
>
bmRegisterItemList
)
{
this
.
bmRegisterItemList
=
bmRegisterItemList
;
}
public
Long
getQrcodeId
()
{
return
qrcodeId
;
}
public
void
setQrcodeId
(
Long
qrcodeId
)
{
this
.
qrcodeId
=
qrcodeId
;
}
@Override
public
String
toString
()
{
return
"AdvertisingBmRegister{"
+
"userId="
+
userId
+
", adId="
+
adId
+
", nickName='"
+
nickName
+
'\''
+
", createTime="
+
createTime
+
", bmRegisterItemList="
+
bmRegisterItemList
+
", qrcodeId="
+
qrcodeId
+
'}'
;
}
}
\ No newline at end of file
pcloud-service-book/src/main/java/com/pcloud/book/advertising/entity/AdvertisingBmRegisterItem.java
0 → 100644
View file @
fa773c80
package
com
.
pcloud
.
book
.
advertising
.
entity
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.pcloud.common.entity.BaseEntity
;
import
java.util.Date
;
import
java.util.List
;
/**
* 报名记录选项内容
*/
public
class
AdvertisingBmRegisterItem
extends
BaseEntity
{
/**
*用户id
*/
private
Long
userId
;
/**
*广告id
*/
private
Long
adId
;
/**
*报名记录ID
*/
private
Long
registerId
;
/**
*选项ID
*/
private
Long
optionId
;
/**
*选项清单ID
*/
private
Long
optionItemId
;
/**
*选项值
*/
private
String
optionValue
;
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
private
Date
createTime
;
/**
* 选项清单IDs,单选多选
*/
private
List
<
Long
>
optionItemIds
;
public
Long
getUserId
()
{
return
userId
;
}
public
void
setUserId
(
Long
userId
)
{
this
.
userId
=
userId
;
}
public
Long
getAdId
()
{
return
adId
;
}
public
void
setAdId
(
Long
adId
)
{
this
.
adId
=
adId
;
}
public
Long
getRegisterId
()
{
return
registerId
;
}
public
void
setRegisterId
(
Long
registerId
)
{
this
.
registerId
=
registerId
;
}
public
Long
getOptionId
()
{
return
optionId
;
}
public
void
setOptionId
(
Long
optionId
)
{
this
.
optionId
=
optionId
;
}
public
Long
getOptionItemId
()
{
return
optionItemId
;
}
public
void
setOptionItemId
(
Long
optionItemId
)
{
this
.
optionItemId
=
optionItemId
;
}
public
String
getOptionValue
()
{
return
optionValue
;
}
public
void
setOptionValue
(
String
optionValue
)
{
this
.
optionValue
=
optionValue
==
null
?
null
:
optionValue
.
trim
();
}
public
Date
getCreateTime
()
{
return
createTime
;
}
public
void
setCreateTime
(
Date
createTime
)
{
this
.
createTime
=
createTime
;
}
public
List
<
Long
>
getOptionItemIds
()
{
return
optionItemIds
;
}
public
void
setOptionItemIds
(
List
<
Long
>
optionItemIds
)
{
this
.
optionItemIds
=
optionItemIds
;
}
@Override
public
String
toString
()
{
return
"AdvertisingBmRegisterItem{"
+
"userId="
+
userId
+
", adId="
+
adId
+
", registerId="
+
registerId
+
", optionId="
+
optionId
+
", optionItemId="
+
optionItemId
+
", optionValue='"
+
optionValue
+
'\''
+
", createTime="
+
createTime
+
", optionItemIds="
+
optionItemIds
+
'}'
;
}
}
\ No newline at end of file
pcloud-service-book/src/main/java/com/pcloud/book/advertising/entity/AdvertisingSpace.java
View file @
fa773c80
...
@@ -2,6 +2,8 @@ package com.pcloud.book.advertising.entity;
...
@@ -2,6 +2,8 @@ package com.pcloud.book.advertising.entity;
import
java.math.BigDecimal
;
import
java.math.BigDecimal
;
import
java.util.Date
;
import
java.util.Date
;
import
java.util.List
;
import
com.pcloud.common.entity.BaseEntity
;
import
com.pcloud.common.entity.BaseEntity
;
/**
/**
...
@@ -85,6 +87,71 @@ public class AdvertisingSpace extends BaseEntity {
...
@@ -85,6 +87,71 @@ public class AdvertisingSpace extends BaseEntity {
* advertising_space.is_open (是否打开)
* advertising_space.is_open (是否打开)
*/
*/
private
Boolean
isOpen
;
private
Boolean
isOpen
;
/**
*广告详情方式
*/
private
String
adDetailMode
;
/**
*广告详情封面
*/
private
String
adDetailCoverPic
;
/**
*广告详情优惠图
*/
private
String
adDetailWelfarePic
;
/**
*广告详情介绍
*/
private
String
adDetailInfo
;
/**
*广告详情文件ID
*/
private
String
adDetailFileId
;
/**
*广告详情文件转码状态
*/
private
Integer
adDetailFileConvertState
;
/**
*广告详情文件路径
*/
private
String
adDetailFileUrl
;
/**
*广告详情文件标题
*/
private
String
adDetailTitle
;
/**
*广告详情文件试播秒数
*/
private
Long
adDetailFilePilotSecond
;
/**
*广告详情文件试播路径
*/
private
String
adDetailFilePilotUrl
;
/**
*广告详情文件试播结束提示
*/
private
String
adDetailFilePilotFinishTip
;
/**
* 报名选项设置
*/
private
List
<
AdvertisingBmOption
>
advertisingBmOptionList
;
/**
*广告报名表单是否校验手机号
*/
private
Boolean
adFormMobileCheck
;
/**
*广告报名表单备注
*/
private
String
adFormRemark
;
/**
*广告报名表单提交按钮
*/
private
String
adFormButton
;
/**
*广告报名表单跳转链接
*/
private
String
adFormLink
;
/**
/**
* 结算方式
* 结算方式
...
@@ -96,6 +163,20 @@ public class AdvertisingSpace extends BaseEntity {
...
@@ -96,6 +163,20 @@ public class AdvertisingSpace extends BaseEntity {
*/
*/
private
BigDecimal
priceEachTime
;
private
BigDecimal
priceEachTime
;
/**
* 广告详情文件大小
*/
private
Long
adDetailFileSize
;
/**
* 广告详情文件名称
*/
private
String
adDetailFileName
;
/**
* 广告详情文件时长
*/
private
Long
adDetailFileDuration
;
@Override
@Override
public
Long
getId
()
{
public
Long
getId
()
{
return
id
;
return
id
;
...
@@ -230,6 +311,125 @@ public class AdvertisingSpace extends BaseEntity {
...
@@ -230,6 +311,125 @@ public class AdvertisingSpace extends BaseEntity {
this
.
priceEachTime
=
priceEachTime
;
this
.
priceEachTime
=
priceEachTime
;
}
}
public
String
getAdDetailMode
()
{
return
adDetailMode
;
}
public
void
setAdDetailMode
(
String
adDetailMode
)
{
this
.
adDetailMode
=
adDetailMode
;
}
public
String
getAdDetailCoverPic
()
{
return
adDetailCoverPic
;
}
public
void
setAdDetailCoverPic
(
String
adDetailCoverPic
)
{
this
.
adDetailCoverPic
=
adDetailCoverPic
;
}
public
String
getAdDetailWelfarePic
()
{
return
adDetailWelfarePic
;
}
public
void
setAdDetailWelfarePic
(
String
adDetailWelfarePic
)
{
this
.
adDetailWelfarePic
=
adDetailWelfarePic
;
}
public
String
getAdDetailInfo
()
{
return
adDetailInfo
;
}
public
void
setAdDetailInfo
(
String
adDetailInfo
)
{
this
.
adDetailInfo
=
adDetailInfo
;
}
public
String
getAdDetailFileId
()
{
return
adDetailFileId
;
}
public
void
setAdDetailFileId
(
String
adDetailFileId
)
{
this
.
adDetailFileId
=
adDetailFileId
;
}
public
Integer
getAdDetailFileConvertState
()
{
return
adDetailFileConvertState
;
}
public
void
setAdDetailFileConvertState
(
Integer
adDetailFileConvertState
)
{
this
.
adDetailFileConvertState
=
adDetailFileConvertState
;
}
public
String
getAdDetailFileUrl
()
{
return
adDetailFileUrl
;
}
public
void
setAdDetailFileUrl
(
String
adDetailFileUrl
)
{
this
.
adDetailFileUrl
=
adDetailFileUrl
;
}
public
String
getAdDetailTitle
()
{
return
adDetailTitle
;
}
public
void
setAdDetailTitle
(
String
adDetailTitle
)
{
this
.
adDetailTitle
=
adDetailTitle
;
}
public
Long
getAdDetailFilePilotSecond
()
{
return
adDetailFilePilotSecond
;
}
public
void
setAdDetailFilePilotSecond
(
Long
adDetailFilePilotSecond
)
{
this
.
adDetailFilePilotSecond
=
adDetailFilePilotSecond
;
}
public
String
getAdDetailFilePilotUrl
()
{
return
adDetailFilePilotUrl
;
}
public
void
setAdDetailFilePilotUrl
(
String
adDetailFilePilotUrl
)
{
this
.
adDetailFilePilotUrl
=
adDetailFilePilotUrl
;
}
public
String
getAdDetailFilePilotFinishTip
()
{
return
adDetailFilePilotFinishTip
;
}
public
void
setAdDetailFilePilotFinishTip
(
String
adDetailFilePilotFinishTip
)
{
this
.
adDetailFilePilotFinishTip
=
adDetailFilePilotFinishTip
;
}
public
Boolean
getAdFormMobileCheck
()
{
return
adFormMobileCheck
;
}
public
void
setAdFormMobileCheck
(
Boolean
adFormMobileCheck
)
{
this
.
adFormMobileCheck
=
adFormMobileCheck
;
}
public
String
getAdFormRemark
()
{
return
adFormRemark
;
}
public
void
setAdFormRemark
(
String
adFormRemark
)
{
this
.
adFormRemark
=
adFormRemark
;
}
public
String
getAdFormButton
()
{
return
adFormButton
;
}
public
void
setAdFormButton
(
String
adFormButton
)
{
this
.
adFormButton
=
adFormButton
;
}
public
String
getAdFormLink
()
{
return
adFormLink
;
}
public
void
setAdFormLink
(
String
adFormLink
)
{
this
.
adFormLink
=
adFormLink
;
}
public
Boolean
getIsTest
()
{
public
Boolean
getIsTest
()
{
return
isTest
;
return
isTest
;
...
@@ -239,6 +439,38 @@ public class AdvertisingSpace extends BaseEntity {
...
@@ -239,6 +439,38 @@ public class AdvertisingSpace extends BaseEntity {
this
.
isTest
=
isOpen
;
this
.
isTest
=
isOpen
;
}
}
public
List
<
AdvertisingBmOption
>
getAdvertisingBmOptionList
()
{
return
advertisingBmOptionList
;
}
public
void
setAdvertisingBmOptionList
(
List
<
AdvertisingBmOption
>
advertisingBmOptionList
)
{
this
.
advertisingBmOptionList
=
advertisingBmOptionList
;
}
public
Long
getAdDetailFileSize
()
{
return
adDetailFileSize
;
}
public
void
setAdDetailFileSize
(
Long
adDetailFileSize
)
{
this
.
adDetailFileSize
=
adDetailFileSize
;
}
public
String
getAdDetailFileName
()
{
return
adDetailFileName
;
}
public
void
setAdDetailFileName
(
String
adDetailFileName
)
{
this
.
adDetailFileName
=
adDetailFileName
;
}
public
Long
getAdDetailFileDuration
()
{
return
adDetailFileDuration
;
}
public
void
setAdDetailFileDuration
(
Long
adDetailFileDuration
)
{
this
.
adDetailFileDuration
=
adDetailFileDuration
;
}
@Override
@Override
public
String
toString
()
{
public
String
toString
()
{
return
"AdvertisingSpace{"
+
return
"AdvertisingSpace{"
+
...
@@ -257,8 +489,27 @@ public class AdvertisingSpace extends BaseEntity {
...
@@ -257,8 +489,27 @@ public class AdvertisingSpace extends BaseEntity {
", updateTime="
+
updateTime
+
", updateTime="
+
updateTime
+
", isTest="
+
isTest
+
", isTest="
+
isTest
+
", isOpen="
+
isOpen
+
", isOpen="
+
isOpen
+
", adDetailMode='"
+
adDetailMode
+
'\''
+
", adDetailCoverPic='"
+
adDetailCoverPic
+
'\''
+
", adDetailWelfarePic='"
+
adDetailWelfarePic
+
'\''
+
", adDetailInfo='"
+
adDetailInfo
+
'\''
+
", adDetailFileId='"
+
adDetailFileId
+
'\''
+
", adDetailFileConvertState="
+
adDetailFileConvertState
+
", adDetailFileUrl='"
+
adDetailFileUrl
+
'\''
+
", adDetailTitle='"
+
adDetailTitle
+
'\''
+
", adDetailFilePilotSecond="
+
adDetailFilePilotSecond
+
", adDetailFilePilotUrl='"
+
adDetailFilePilotUrl
+
'\''
+
", adDetailFilePilotFinishTip='"
+
adDetailFilePilotFinishTip
+
'\''
+
", advertisingBmOptionList="
+
advertisingBmOptionList
+
", adFormMobileCheck="
+
adFormMobileCheck
+
", adFormRemark='"
+
adFormRemark
+
'\''
+
", adFormButton='"
+
adFormButton
+
'\''
+
", adFormLink='"
+
adFormLink
+
'\''
+
", settlementMethod='"
+
settlementMethod
+
'\''
+
", settlementMethod='"
+
settlementMethod
+
'\''
+
", priceEachTime="
+
priceEachTime
+
", priceEachTime="
+
priceEachTime
+
"} "
+
super
.
toString
();
", adDetailFileSize="
+
adDetailFileSize
+
", adDetailFileName='"
+
adDetailFileName
+
'\''
+
", adDetailFileDuration="
+
adDetailFileDuration
+
'}'
;
}
}
}
}
\ No newline at end of file
pcloud-service-book/src/main/java/com/pcloud/book/advertising/enums/AdDetailModeEnum.java
0 → 100644
View file @
fa773c80
package
com
.
pcloud
.
book
.
advertising
.
enums
;
/**
* @描述:广告详情介绍方式
* @作者:zhuyajie
* @创建时间:14:37 2019/6/25
* @版本:1.0
*/
public
enum
AdDetailModeEnum
{
IMG_TEXT
(
"IMG_TEXT"
,
"图文介绍"
),
AUDIO
(
"AUDIO"
,
"音频试听"
),
VIDEO
(
"VIDEO"
,
"视频试看"
);
public
final
String
code
;
public
final
String
name
;
AdDetailModeEnum
(
String
code
,
String
name
)
{
this
.
code
=
code
;
this
.
name
=
name
;
}
public
static
String
getNameByCode
(
String
code
)
{
AdDetailModeEnum
[]
var1
=
values
();
int
var2
=
var1
.
length
;
for
(
int
var3
=
0
;
var3
<
var2
;
++
var3
)
{
AdDetailModeEnum
methodEnum
=
var1
[
var3
];
if
(
methodEnum
.
code
.
equals
(
code
))
{
return
methodEnum
.
name
;
}
}
return
null
;
}
}
pcloud-service-book/src/main/java/com/pcloud/book/advertising/enums/SettlementMethodEnum.java
View file @
fa773c80
...
@@ -34,5 +34,5 @@ public enum SettlementMethodEnum {
...
@@ -34,5 +34,5 @@ public enum SettlementMethodEnum {
public
static
final
String
[]
SETTLEMENT_METHOD_GATHER
=
{
CPC
.
code
,
CPM
.
code
,
CPA
.
code
,
CPS
.
code
};
public
static
final
String
[]
SETTLEMENT_METHOD_GATHER
=
{
CPC
.
code
,
CPM
.
code
,
CPA
.
code
,
CPS
.
code
};
public
static
final
String
[]
SETTLEMENT_METHOD_NEED_PRICE_GATHER
=
{
CPC
.
code
,
CPM
.
code
};
public
static
final
String
[]
SETTLEMENT_METHOD_NEED_PRICE_GATHER
=
{
CPC
.
code
,
CPM
.
code
,
CPA
.
code
};
}
}
pcloud-service-book/src/main/java/com/pcloud/book/advertising/facade/AdvertisingSpaceFacade.java
View file @
fa773c80
package
com
.
pcloud
.
book
.
advertising
.
facade
;
package
com
.
pcloud
.
book
.
advertising
.
facade
;
import
com.pcloud.book.advertising.dto.AdvertisingSpaceDTO
;
import
com.pcloud.book.advertising.dto.TestParamDTO
;
import
com.pcloud.book.advertising.dto.TestParamDTO
;
import
com.pcloud.book.advertising.entity.*
;
import
com.pcloud.book.advertising.entity.*
;
import
com.pcloud.common.dto.ResponseDto
;
import
com.pcloud.common.dto.ResponseDto
;
...
@@ -80,6 +81,22 @@ public interface AdvertisingSpaceFacade {
...
@@ -80,6 +81,22 @@ public interface AdvertisingSpaceFacade {
throws
PermissionException
,
BizException
,
JsonParseException
;
throws
PermissionException
,
BizException
,
JsonParseException
;
/**
/**
* 客户端获取广告位信息
* @param userInfo 用户身份信息
* @param adId 广告位ID
* @return
* @throws PermissionException
* @throws BizException
* @throws JsonParseException
*/
@ApiOperation
(
value
=
"客户端获取广告位信息"
,
httpMethod
=
"GET"
)
@ApiImplicitParams
({
@ApiImplicitParam
(
name
=
"userInfo"
,
value
=
"用户身份信息"
,
dataType
=
"string"
,
paramType
=
"header"
),
@ApiImplicitParam
(
name
=
"adId"
,
value
=
"广告位ID"
,
required
=
false
,
dataType
=
"Long"
,
paramType
=
"query"
)
})
@RequestMapping
(
value
=
"getAdInfo4Wechat"
,
method
=
RequestMethod
.
GET
)
ResponseDto
<
AdvertisingSpaceDTO
>
getAdInfo4Wechat
(
@CookieValue
(
"userInfo"
)
String
userInfo
,
@RequestParam
(
value
=
"adId"
,
required
=
false
)
Long
adId
);
/**
* 停用广告位
* 停用广告位
* @param token 用户身份信息
* @param token 用户身份信息
* @param advertisingSpace 广告位实体
* @param advertisingSpace 广告位实体
...
...
pcloud-service-book/src/main/java/com/pcloud/book/advertising/facade/BmFacade.java
0 → 100644
View file @
fa773c80
package
com
.
pcloud
.
book
.
advertising
.
facade
;
import
com.pcloud.book.advertising.entity.AdvertisingBmRegister
;
import
com.pcloud.common.dto.ResponseDto
;
import
com.pcloud.common.exceptions.BizException
;
import
com.pcloud.common.permission.PermissionException
;
import
org.codehaus.jackson.JsonParseException
;
import
org.springframework.cloud.netflix.feign.FeignClient
;
import
org.springframework.web.bind.annotation.CookieValue
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestHeader
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestMethod
;
import
org.springframework.web.bind.annotation.RequestParam
;
import
java.util.Map
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiImplicitParam
;
import
io.swagger.annotations.ApiImplicitParams
;
import
io.swagger.annotations.ApiOperation
;
import
io.swagger.annotations.ApiParam
;
/**
* 报名
*/
@FeignClient
(
value
=
"pcloud-service-book"
,
qualifier
=
"bmFacadeCloud"
,
path
=
"book/v1.0/bm"
)
@Api
(
"报名应用FACADE接口类"
)
public
interface
BmFacade
{
/**
* 获取报名应用选项类型
* @param token 用户身份信息
* @return
* @throws PermissionException
* @throws BizException
* @throws JsonParseException
*/
@ApiOperation
(
value
=
"获取报名应用选项类型"
,
httpMethod
=
"GET"
)
@RequestMapping
(
value
=
"getOptionType"
,
method
=
RequestMethod
.
GET
)
ResponseDto
<?>
getOptionType
(
@RequestHeader
(
"token"
)
String
token
)
throws
PermissionException
,
BizException
,
JsonParseException
;
/**
* 获取报名应用选项数据类型
* @param token 用户身份信息
* @return
* @throws PermissionException
* @throws BizException
* @throws JsonParseException
*/
@ApiOperation
(
value
=
"获取报名应用选项数据类型"
,
httpMethod
=
"GET"
)
@RequestMapping
(
value
=
"/getOptionDataType"
,
method
=
RequestMethod
.
GET
)
ResponseDto
<?>
getOptionDataType
(
@RequestHeader
(
"token"
)
String
token
)
throws
PermissionException
,
BizException
,
JsonParseException
;
/**
* 用户提交表单
* @param userInfo 用户身份信息
* @param bmRegister 用户实体
* @return
* @throws PermissionException
* @throws BizException
* @throws JsonParseException
* postman
*/
@ApiOperation
(
value
=
"用户提交表单"
,
httpMethod
=
"POST"
)
@RequestMapping
(
value
=
"/userSubmit4Wechat"
,
method
=
RequestMethod
.
POST
)
ResponseDto
<?>
userSubmit4Wechat
(
@CookieValue
(
"userInfo"
)
String
userInfo
,
@RequestBody
@ApiParam
AdvertisingBmRegister
bmRegister
)
throws
PermissionException
,
BizException
,
JsonParseException
;
/**
* @Title: getDetail4Wechat
* @Description:微信端获取个人报名详情
* @throws PermissionException
* @throws BizException
* @throws JsonParseException
*/
@ApiOperation
(
value
=
"微信端获取个人报名详情"
,
httpMethod
=
"GET"
)
@ApiImplicitParam
(
name
=
"adId"
,
value
=
"广告id"
,
dataType
=
"long"
,
paramType
=
"query"
)
@RequestMapping
(
value
=
"/getDetail4Wechat"
,
method
=
RequestMethod
.
GET
)
ResponseDto
<?>
getDetail4Wechat
(
@CookieValue
(
"userInfo"
)
String
userInfo
,
@RequestParam
(
value
=
"adId"
)
Long
adId
)
throws
PermissionException
,
BizException
,
JsonParseException
;
/**
* @Description:导出报名信息-广告位
* @return
* @throws PermissionException
* @throws BizException
* @throws JsonParseException
*/
@ApiOperation
(
value
=
"导出报名信息"
,
httpMethod
=
"GET"
)
@ApiImplicitParams
({
@ApiImplicitParam
(
name
=
"adId"
,
value
=
"广告位id"
,
required
=
false
,
dataType
=
"Long"
,
paramType
=
"query"
),
@ApiImplicitParam
(
name
=
"qrcodeId"
,
value
=
"群二维码id"
,
required
=
false
,
dataType
=
"Long"
,
paramType
=
"query"
)
})
@RequestMapping
(
value
=
"/exportRegisterInfoByAdId"
,
method
=
RequestMethod
.
GET
)
ResponseDto
<
Map
<
String
,
Object
>>
exportRegisterInfoByAdId
(
@RequestHeader
(
"token"
)
String
token
,
@RequestParam
(
"adId"
)
Long
adId
,
@RequestParam
(
value
=
"qrcodeId"
,
required
=
false
)
Long
qrcodeId
)
throws
PermissionException
,
BizException
,
JsonParseException
;
}
pcloud-service-book/src/main/java/com/pcloud/book/advertising/facade/impl/AdvertisingSpaceFacadeImpl.java
View file @
fa773c80
...
@@ -82,6 +82,19 @@ public class AdvertisingSpaceFacadeImpl implements AdvertisingSpaceFacade {
...
@@ -82,6 +82,19 @@ public class AdvertisingSpaceFacadeImpl implements AdvertisingSpaceFacade {
}
}
/**
/**
* 客户端获取广告位信息
*/
@Override
@RequestMapping
(
value
=
"getAdInfo4Wechat"
,
method
=
RequestMethod
.
GET
)
public
ResponseDto
<
AdvertisingSpaceDTO
>
getAdInfo4Wechat
(
@CookieValue
(
"userInfo"
)
String
userInfo
,
@RequestParam
(
value
=
"adId"
,
required
=
false
)
Long
adId
)
{
if
(
null
==
adId
)
{
throw
new
BookBizException
(
BookBizException
.
PARAM_IS_NULL
,
"参数有误!"
);
}
Cookie
.
getUserInfo
(
userInfo
);
return
new
ResponseDto
<>(
advertisingSpaceBiz
.
get
(
adId
));
}
/**
* 停用广告位
* 停用广告位
*/
*/
@Override
@Override
...
...
pcloud-service-book/src/main/java/com/pcloud/book/advertising/facade/impl/BmFacadeImpl.java
0 → 100644
View file @
fa773c80
package
com
.
pcloud
.
book
.
advertising
.
facade
.
impl
;
import
com.pcloud.book.advertising.biz.BmBiz
;
import
com.pcloud.book.advertising.entity.AdvertisingBmOption
;
import
com.pcloud.book.advertising.entity.AdvertisingBmRegister
;
import
com.pcloud.book.advertising.facade.BmFacade
;
import
com.pcloud.book.base.exception.BookBizException
;
import
com.pcloud.book.book.biz.BookBiz
;
import
com.pcloud.common.dto.ResponseDto
;
import
com.pcloud.common.exceptions.BizException
;
import
com.pcloud.common.permission.PermissionException
;
import
com.pcloud.common.utils.SessionUtil
;
import
com.pcloud.common.utils.cookie.Cookie
;
import
org.codehaus.jackson.JsonParseException
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.CookieValue
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestHeader
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestMethod
;
import
org.springframework.web.bind.annotation.RequestParam
;
import
org.springframework.web.bind.annotation.RestController
;
import
java.util.Map
;
import
javax.servlet.http.HttpServletRequest
;
/**
* 报名
*/
@RestController
(
"bmFacade"
)
@RequestMapping
(
"/bm"
)
public
class
BmFacadeImpl
implements
BmFacade
{
@Autowired
private
BmBiz
bmBiz
;
/**
* 获取选项类型
*/
@Override
@RequestMapping
(
value
=
"getOptionType"
,
method
=
RequestMethod
.
GET
)
public
ResponseDto
<?>
getOptionType
(
@RequestHeader
(
"token"
)
String
token
)
throws
PermissionException
,
BizException
,
JsonParseException
{
SessionUtil
.
getToken4Redis
(
token
);
return
new
ResponseDto
<>(
bmBiz
.
getOptionType
());
}
/**
* 获取选项数据类型
*/
@RequestMapping
(
value
=
"/getOptionDataType"
,
method
=
RequestMethod
.
GET
)
@Override
public
ResponseDto
<?>
getOptionDataType
(
@RequestHeader
(
"token"
)
String
token
)
throws
PermissionException
,
BizException
,
JsonParseException
{
SessionUtil
.
getToken4Redis
(
token
);
return
new
ResponseDto
<>(
bmBiz
.
getOptionDataType
());
}
/**
* 用户提交表单
*/
@Override
@RequestMapping
(
value
=
"/userSubmit4Wechat"
,
method
=
RequestMethod
.
POST
)
public
ResponseDto
<?>
userSubmit4Wechat
(
@CookieValue
(
"userInfo"
)
String
userInfo
,
@RequestBody
AdvertisingBmRegister
bmRegister
)
throws
PermissionException
,
BizException
,
JsonParseException
{
Long
wechatUserId
=
Cookie
.
getId
(
userInfo
,
Cookie
.
_WECHAT_USER_ID
);
Long
qrcodeId
=
Cookie
.
getId
(
userInfo
,
Cookie
.
QRCODE_ID
);
if
(
bmRegister
==
null
)
{
throw
new
BookBizException
(
BookBizException
.
PARAM_IS_ERROR
,
"参数有误!"
);
}
bmRegister
.
setUserId
(
wechatUserId
);
Long
result
=
bmBiz
.
userSubmit
(
bmRegister
,
wechatUserId
,
qrcodeId
);
return
new
ResponseDto
<>(
result
);
}
/**
* 微信端获取个人报名详情
*/
@Override
@RequestMapping
(
value
=
"/getDetail4Wechat"
,
method
=
RequestMethod
.
GET
)
public
ResponseDto
<?>
getDetail4Wechat
(
@CookieValue
(
"userInfo"
)
String
userInfo
,
@RequestParam
(
value
=
"adId"
)
Long
adId
)
throws
PermissionException
,
BizException
,
JsonParseException
{
Long
wechatUserId
=
Cookie
.
getId
(
userInfo
,
Cookie
.
_WECHAT_USER_ID
);
Long
qrcodeId
=
Cookie
.
getId
(
userInfo
,
Cookie
.
QRCODE_ID
);
if
(
null
==
adId
)
{
throw
new
BookBizException
(
BookBizException
.
PARAM_IS_ERROR
,
"参数有误!"
);
}
return
new
ResponseDto
<>(
bmBiz
.
getDetail4Wechat
(
adId
,
wechatUserId
,
qrcodeId
));
}
/**
* 报名信息导出
*/
@Override
@RequestMapping
(
value
=
"/exportRegisterInfoByAdId"
,
method
=
RequestMethod
.
GET
)
public
ResponseDto
<
Map
<
String
,
Object
>>
exportRegisterInfoByAdId
(
@RequestHeader
(
"token"
)
String
token
,
@RequestParam
(
"adId"
)
Long
adId
,
@RequestParam
(
value
=
"qrcodeId"
,
required
=
false
)
Long
qrcodeId
)
throws
PermissionException
,
BizException
,
JsonParseException
{
if
(
null
==
adId
){
throw
new
BookBizException
(
BookBizException
.
PARAM_IS_ERROR
,
"参数有误!"
);
}
SessionUtil
.
getInfoToken4Redis
(
token
);
Map
<
String
,
Object
>
map
=
bmBiz
.
exportRegisterInfoByAdId
(
adId
,
qrcodeId
);
return
new
ResponseDto
<>(
map
);
}
}
pcloud-service-book/src/main/java/com/pcloud/book/consumer/wechatgroup/WechatGroupConsr.java
View file @
fa773c80
...
@@ -79,6 +79,25 @@ public class WechatGroupConsr {
...
@@ -79,6 +79,25 @@ public class WechatGroupConsr {
}
}
}
}
@ParamLog
(
"根据群号获取发广告机器人微信号"
)
public
String
getSendAdRobotByGroupId
(
String
groupId
)
throws
BizException
{
log
.
info
(
"【根据群号获取发广告机器人微信号,<START>.[groupId]="
+
groupId
+
"]"
);
if
(
groupId
==
null
)
{
return
null
;
}
try
{
return
ResponseHandleUtil
.
parseResponse
(
groupMemberService
.
getSendAdRobotByGroupId
(
groupId
),
String
.
class
);
}
catch
(
BizException
e
)
{
log
.
warn
(
"根据群号获取发广告机器人微信号失败:"
+
e
.
getMessage
(),
e
);
throw
new
BizException
(
e
.
getCode
(),
e
.
getMessage
());
}
catch
(
Exception
e
)
{
log
.
error
(
"根据群号获取发广告机器人微信号.[getSendAdRobotByGroupId]:"
+
e
.
getMessage
(),
e
);
throw
new
BookBizException
(
BookBizException
.
INVOKE_RES_ERROR
,
"服务内部错误,请稍后重试"
);
}
finally
{
log
.
info
(
"【根据群号获取发广告机器人微信号,<END>"
);
}
}
/**
/**
* 根据昵称获取微信id
* 根据昵称获取微信id
*/
*/
...
...
pcloud-service-book/src/main/java/com/pcloud/book/mq/topic/ConvertFileListener.java
0 → 100644
View file @
fa773c80
package
com
.
pcloud
.
book
.
mq
.
topic
;
import
com.google.common.collect.Maps
;
import
com.pcloud.book.advertising.biz.AdvertisingSpaceBiz
;
import
com.pcloud.book.advertising.entity.AdvertisingSpace
;
import
com.pcloud.common.core.aspect.ParamLog
;
import
com.pcloud.common.core.constant.ConvertEnum
;
import
com.pcloud.common.core.constant.MQQueueConstant
;
import
com.pcloud.common.core.dto.ConvertQueueDto
;
import
com.pcloud.common.exceptions.BizException
;
import
com.pcloud.common.utils.FileUtils
;
import
com.pcloud.common.utils.ListUtils
;
import
com.pcloud.contentcenter.resource.enums.ResourceTypeEnum
;
import
org.apache.commons.collections.MapUtils
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.amqp.rabbit.annotation.RabbitHandler
;
import
org.springframework.amqp.rabbit.annotation.RabbitListener
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
import
java.util.List
;
import
java.util.Map
;
import
javax.annotation.PostConstruct
;
/**
* @描述:文件转码
* @作者:zhuyajie
* @创建时间:11:31 2019/6/25
* @版本:1.0
*/
@Component
(
"convertFileListener"
)
@RabbitListener
(
queues
=
MQQueueConstant
.
CONVERT_TO_BOOK
)
public
class
ConvertFileListener
{
private
static
final
Logger
LOGGER
=
LoggerFactory
.
getLogger
(
ConvertFileListener
.
class
);
private
static
ConvertFileListener
convertFileListener
;
@Autowired
private
AdvertisingSpaceBiz
advertisingSpaceBiz
;
/**
* 当转换过快,消息先一步到达资源中心时,找不到对应的记录就保存下来
*/
private
static
Map
<
String
,
ConvertQueueDto
>
cqds
=
Maps
.
newHashMap
();
private
static
Thread
t1
=
new
Thread
(
new
Runnable
()
{
@Override
public
void
run
()
{
while
(
true
)
{
LOGGER
.
info
(
"开始轮询cqds"
);
//如果cqds没有记录,休眠60秒
if
(
MapUtils
.
isEmpty
(
cqds
))
{
try
{
Thread
.
sleep
(
1000
*
60
);
}
catch
(
InterruptedException
e
)
{
LOGGER
.
error
(
"pmrismap线程执行出错"
,
e
);
}
}
else
{
for
(
Map
.
Entry
<
String
,
ConvertQueueDto
>
e
:
cqds
.
entrySet
())
{
if
(
e
.
getValue
()
!=
null
)
{
ConvertQueueDto
convertFileDto
=
e
.
getValue
();
LOGGER
.
warn
(
"转码后信息>>>>>"
+
convertFileDto
.
toString
());
String
fileCategory
=
FileUtils
.
getGatherName
(
convertFileDto
.
getFileType
());
String
fileId
=
convertFileDto
.
getFileId
();
String
fileUrl
=
convertFileDto
.
getFileUrl
();
if
(
ResourceTypeEnum
.
AUDIO
.
code
.
equals
(
fileCategory
)
||
ResourceTypeEnum
.
VIDEO
.
code
.
equals
(
fileCategory
))
{
List
<
AdvertisingSpace
>
filelist
=
convertFileListener
.
advertisingSpaceBiz
.
getUnConvertFile
(
fileId
);
if
(!
ListUtils
.
isEmpty
(
filelist
))
{
//更新
convertFileListener
.
advertisingSpaceBiz
.
updateFile
(
filelist
,
fileUrl
);
cqds
.
remove
(
e
.
getKey
());
}
else
{
if
(
convertFileDto
.
getProcessTimes
()
<
10
)
{
convertFileDto
.
setProcessTimes
(
convertFileDto
.
getProcessTimes
()
+
1
);
LOGGER
.
info
(
"音频资源 ,未找到对应记录,进入下一个循环!fileid="
+
convertFileDto
.
getFileId
());
}
else
{
cqds
.
remove
(
e
.
getKey
());
}
}
}
}
else
{
// 当该key内无实体时,即清除
cqds
.
remove
(
e
.
getKey
());
}
}
}
}
}
});
// 开始缓存处理
static
{
t1
.
start
();
}
@RabbitHandler
@ParamLog
(
"文件转码"
)
public
void
process
(
ConvertQueueDto
convertQueueDto
)
throws
BizException
{
//消息处理
update
(
convertQueueDto
);
}
/**
* 更新数据库
*/
private
void
update
(
ConvertQueueDto
convertFileDto
)
{
if
(
null
==
convertFileDto
)
{
return
;
}
if
(!
ConvertEnum
.
BOOK
.
value
.
equals
(
convertFileDto
.
getFromType
()))
{
return
;
}
String
fileCategory
=
FileUtils
.
getGatherName
(
convertFileDto
.
getFileType
());
//转换成功
if
(
convertFileDto
.
getState
()
==
null
||
convertFileDto
.
getState
())
{
String
fileId
=
convertFileDto
.
getFileId
();
String
fileUrl
=
convertFileDto
.
getFileUrl
();
// 修改点读书音频转码后的地址
if
(
ResourceTypeEnum
.
AUDIO
.
code
.
equals
(
fileCategory
))
{
List
<
AdvertisingSpace
>
filelist
=
convertFileListener
.
advertisingSpaceBiz
.
getUnConvertFile
(
fileId
);
if
(
ListUtils
.
isEmpty
(
filelist
))
{
LOGGER
.
info
(
"接收到转码状态时,数据库还未插入记录,先将音频转码信息放到缓存fileId="
+
fileId
+
"convertFileDto="
+
convertFileDto
.
toString
());
cqds
.
put
(
fileId
,
convertFileDto
);
}
else
{
convertFileListener
.
advertisingSpaceBiz
.
updateFile
(
filelist
,
fileUrl
);
}
}
}
}
@PostConstruct
public
void
init
()
{
convertFileListener
=
this
;
convertFileListener
.
advertisingSpaceBiz
=
this
.
advertisingSpaceBiz
;
}
}
pcloud-service-book/src/main/java/com/pcloud/book/util/common/ExcelUtils.java
0 → 100644
View file @
fa773c80
package
com
.
pcloud
.
book
.
util
.
common
;
import
org.apache.poi.hssf.util.HSSFColor
;
import
org.apache.poi.ss.usermodel.BorderStyle
;
import
org.apache.poi.ss.usermodel.CellStyle
;
import
org.apache.poi.ss.usermodel.Font
;
import
org.apache.poi.ss.usermodel.HorizontalAlignment
;
import
org.apache.poi.ss.usermodel.VerticalAlignment
;
import
org.apache.poi.ss.usermodel.Workbook
;
public
class
ExcelUtils
{
public
static
CellStyle
getColumnTopStyle
(
Workbook
workbook
)
{
// 设置字体
Font
font
=
workbook
.
createFont
();
//设置字体大小
font
.
setFontHeightInPoints
((
short
)
12
);
//字体加粗
font
.
setBold
(
true
);
//设置字体名字
font
.
setFontName
(
"宋体"
);
//设置样式;
CellStyle
style
=
workbook
.
createCellStyle
();
//设置底边框;
style
.
setBorderBottom
(
BorderStyle
.
THIN
);
//设置底边框颜色;
style
.
setBottomBorderColor
(
HSSFColor
.
HSSFColorPredefined
.
BLACK
.
getIndex
());
//设置左边框;
style
.
setBorderLeft
(
BorderStyle
.
THIN
);
//设置左边框颜色;
style
.
setLeftBorderColor
(
HSSFColor
.
HSSFColorPredefined
.
BLACK
.
getIndex
());
//设置右边框;
style
.
setBorderRight
(
BorderStyle
.
THIN
);
//设置右边框颜色;
style
.
setRightBorderColor
(
HSSFColor
.
HSSFColorPredefined
.
BLACK
.
getIndex
());
//设置顶边框;
style
.
setBorderTop
(
BorderStyle
.
THIN
);
//设置顶边框颜色;
style
.
setTopBorderColor
(
HSSFColor
.
HSSFColorPredefined
.
BLACK
.
getIndex
());
//在样式用应用设置的字体;
style
.
setFont
(
font
);
//设置自动换行;
style
.
setWrapText
(
true
);
//设置水平对齐的样式为居中对齐;
style
.
setAlignment
(
HorizontalAlignment
.
CENTER
);
//设置垂直对齐的样式为居中对齐;
style
.
setVerticalAlignment
(
VerticalAlignment
.
CENTER
);
return
style
;
}
public
static
CellStyle
getDataStyle
(
Workbook
workbook
)
{
// 设置字体
Font
font
=
workbook
.
createFont
();
//设置字体大小
font
.
setFontHeightInPoints
((
short
)
10
);
//设置字体名字
font
.
setFontName
(
"宋体"
);
//设置样式;
CellStyle
style
=
workbook
.
createCellStyle
();
//设置底边框;
style
.
setBorderBottom
(
BorderStyle
.
THIN
);
//设置底边框颜色;
style
.
setBottomBorderColor
(
HSSFColor
.
HSSFColorPredefined
.
BLACK
.
getIndex
());
//设置左边框;
style
.
setBorderLeft
(
BorderStyle
.
THIN
);
//设置左边框颜色;
style
.
setLeftBorderColor
(
HSSFColor
.
HSSFColorPredefined
.
BLACK
.
getIndex
());
//设置右边框;
style
.
setBorderRight
(
BorderStyle
.
THIN
);
//设置右边框颜色;
style
.
setRightBorderColor
(
HSSFColor
.
HSSFColorPredefined
.
BLACK
.
getIndex
());
//设置顶边框;
style
.
setBorderTop
(
BorderStyle
.
THIN
);
//设置顶边框颜色;
style
.
setTopBorderColor
(
HSSFColor
.
HSSFColorPredefined
.
BLACK
.
getIndex
());
//在样式用应用设置的字体;
style
.
setFont
(
font
);
//设置自动换行;
style
.
setWrapText
(
true
);
//设置水平对齐的样式为居中对齐;
style
.
setAlignment
(
HorizontalAlignment
.
CENTER
);
//设置垂直对齐的样式为居中对齐;
style
.
setVerticalAlignment
(
VerticalAlignment
.
CENTER
);
return
style
;
}
}
pcloud-service-book/src/main/resources/mapper/advertising/AdvertisingBmOptionItemMapper.xml
0 → 100644
View file @
fa773c80
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper
namespace=
"com.pcloud.book.advertising.dao.impl.BmOptionItemDaoImpl"
>
<resultMap
id=
"BaseResultMap"
type=
"com.pcloud.book.advertising.entity.AdvertisingBmOptionItem"
>
<id
column=
"id"
property=
"id"
jdbcType=
"BIGINT"
/>
<result
column=
"option_id"
property=
"optionId"
jdbcType=
"BIGINT"
/>
<result
column=
"parent_id"
property=
"parentId"
jdbcType=
"BIGINT"
/>
<result
column=
"text"
property=
"text"
jdbcType=
"VARCHAR"
/>
<result
column=
"img_url"
property=
"imgUrl"
jdbcType=
"VARCHAR"
/>
<result
column=
"create_user"
property=
"createUser"
jdbcType=
"BIGINT"
/>
<result
column=
"create_time"
property=
"createTime"
jdbcType=
"TIMESTAMP"
/>
<result
column=
"update_user"
property=
"updateUser"
jdbcType=
"BIGINT"
/>
<result
column=
"update_time"
property=
"updateTime"
jdbcType=
"TIMESTAMP"
/>
</resultMap>
<sql
id=
"Base_Column_List"
>
id, option_id, parent_id, text, img_url, create_user, create_time, update_user, update_time
</sql>
<insert
id=
"insert"
parameterType=
"com.pcloud.book.advertising.entity.AdvertisingBmOptionItem"
useGeneratedKeys=
"true"
keyProperty=
"id"
>
insert into advertising_bm_option_item (option_id, parent_id,
text, img_url, create_user, create_time
)
values (#{optionId,jdbcType=BIGINT}, #{parentId,jdbcType=BIGINT},
#{text,jdbcType=VARCHAR}, #{imgUrl,jdbcType=VARCHAR}, #{createUser,jdbcType=BIGINT}, NOW()
)
</insert>
<!-- 根据选项ID删除选项清单信息 -->
<delete
id=
"deleteByOptionId"
parameterType=
"java.lang.Long"
>
delete from advertising_bm_option_item
where option_id = #{id,jdbcType=BIGINT}
</delete>
<select
id=
"getByOptionId"
resultMap=
"BaseResultMap"
parameterType=
"java.lang.Long"
>
select
<include
refid=
"Base_Column_List"
/>
from advertising_bm_option_item
where option_id = #{optionId,jdbcType=BIGINT} and PARENT_ID=0
</select>
<select
id=
"getValueById"
resultType=
"String"
parameterType=
"Long"
>
select text
from advertising_bm_option_item
where id = #{id,jdbcType=BIGINT}
</select>
</mapper>
\ No newline at end of file
pcloud-service-book/src/main/resources/mapper/advertising/AdvertisingBmOptionMapper.xml
0 → 100644
View file @
fa773c80
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper
namespace=
"com.pcloud.book.advertising.dao.impl.BmOptionDaoImpl"
>
<resultMap
id=
"BaseResultMap"
type=
"com.pcloud.book.advertising.entity.AdvertisingBmOption"
>
<id
column=
"id"
property=
"id"
jdbcType=
"BIGINT"
/>
<result
column=
"ad_id"
property=
"adId"
jdbcType=
"BIGINT"
/>
<result
column=
"seq"
property=
"seq"
jdbcType=
"BIGINT"
/>
<result
column=
"item_title"
property=
"itemTitle"
jdbcType=
"VARCHAR"
/>
<result
column=
"item_desc"
property=
"itemDesc"
jdbcType=
"VARCHAR"
/>
<result
column=
"item_input_type"
property=
"itemInputType"
jdbcType=
"VARCHAR"
/>
<result
column=
"item_data_type"
property=
"itemDataType"
jdbcType=
"VARCHAR"
/>
<result
column=
"required"
property=
"required"
jdbcType=
"BIT"
/>
<result
column=
"create_user"
property=
"createUser"
jdbcType=
"BIGINT"
/>
<result
column=
"create_time"
property=
"createTime"
jdbcType=
"TIMESTAMP"
/>
<result
column=
"update_user"
property=
"updateUser"
jdbcType=
"BIGINT"
/>
<result
column=
"update_time"
property=
"updateTime"
jdbcType=
"TIMESTAMP"
/>
<collection
property=
"optionItem"
column=
"id"
ofType=
"productMatchOptionItem"
select=
"com.pcloud.book.advertising.dao.impl.BmOptionItemDaoImpl.getByOptionId"
/>
</resultMap>
<sql
id=
"Base_Column_List"
>
id, ad_id, seq, item_title, item_desc, item_input_type, item_data_type, required,
create_user, create_time, update_user, update_time
</sql>
<insert
id=
"insert"
parameterType=
"com.pcloud.book.advertising.entity.AdvertisingBmOption"
useGeneratedKeys=
"true"
keyProperty=
"id"
>
insert into advertising_bm_option (ad_id, seq, item_title,
item_desc, item_input_type, item_data_type,
required, create_user, create_time
)
values (#{adId,jdbcType=BIGINT}, #{seq,jdbcType=BIGINT}, #{itemTitle,jdbcType=VARCHAR},
#{itemDesc,jdbcType=VARCHAR}, #{itemInputType,jdbcType=VARCHAR}, #{itemDataType,jdbcType=VARCHAR},
#{required,jdbcType=BIT}, #{createUser,jdbcType=BIGINT}, NOW()
)
</insert>
<!-- 根据广告ID获取选项表单 -->
<select
id=
"getByAdId"
resultMap=
"BaseResultMap"
parameterType=
"map"
>
select
<include
refid=
"Base_Column_List"
/>
from advertising_bm_option
where ad_id = #{adId,jdbcType=BIGINT}
order by seq asc, id asc
</select>
<update
id=
"update"
parameterType=
"com.pcloud.book.advertising.entity.AdvertisingBmOption"
>
update advertising_bm_option
<set
>
<if
test=
"seq != null"
>
seq = #{seq,jdbcType=BIGINT},
</if>
<if
test=
"itemTitle != null"
>
item_title = #{itemTitle,jdbcType=VARCHAR},
</if>
<if
test=
"itemDesc != null"
>
item_desc = #{itemDesc,jdbcType=VARCHAR},
</if>
<if
test=
"itemInputType != null"
>
item_input_type = #{itemInputType,jdbcType=VARCHAR},
</if>
<if
test=
"itemDataType != null"
>
item_data_type = #{itemDataType,jdbcType=VARCHAR},
</if>
<if
test=
"required != null"
>
required = #{required,jdbcType=BIT},
</if>
update_user = #{updateUser,jdbcType=BIGINT},
update_time = NOW(),
</set>
where id = #{id,jdbcType=BIGINT}
</update>
<delete
id=
"deleteByIds"
parameterType=
"list"
>
DELETE FROM advertising_bm_option
WHERE 1=1
AND id IN
<foreach
collection =
"list"
index=
"index"
item =
"item"
open =
"("
separator=
","
close =
")"
>
#{item}
</foreach>
</delete>
<select
id=
"getOptionIdsByAdId"
parameterType=
"Long"
resultType=
"Long"
>
SELECT id
FROM advertising_bm_option
WHERE ad_id = #{adId,jdbcType=BIGINT}
</select>
</mapper>
\ No newline at end of file
pcloud-service-book/src/main/resources/mapper/advertising/AdvertisingBmRegisterItemMapper.xml
0 → 100644
View file @
fa773c80
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper
namespace=
"com.pcloud.book.advertising.dao.impl.BmRegisterItemDaoImpl"
>
<resultMap
id=
"BaseResultMap"
type=
"com.pcloud.book.advertising.entity.AdvertisingBmRegisterItem"
>
<id
column=
"id"
property=
"id"
jdbcType=
"BIGINT"
/>
<result
column=
"user_id"
property=
"userId"
jdbcType=
"BIGINT"
/>
<result
column=
"ad_id"
property=
"adId"
jdbcType=
"BIGINT"
/>
<result
column=
"register_id"
property=
"registerId"
jdbcType=
"BIGINT"
/>
<result
column=
"option_id"
property=
"optionId"
jdbcType=
"BIGINT"
/>
<result
column=
"option_item_id"
property=
"optionItemId"
jdbcType=
"BIGINT"
/>
<result
column=
"option_value"
property=
"optionValue"
jdbcType=
"VARCHAR"
/>
<result
column=
"create_time"
property=
"createTime"
jdbcType=
"TIMESTAMP"
/>
</resultMap>
<resultMap
id=
"registerItemDtoMap"
type=
"BmRegisterItemDTO"
>
<id
column=
"id"
property=
"id"
jdbcType=
"BIGINT"
/>
<result
column=
"register_id"
property=
"registerId"
jdbcType=
"BIGINT"
/>
<result
column=
"option_id"
property=
"optionId"
jdbcType=
"BIGINT"
/>
<result
column=
"option_item_id"
property=
"optionItemId"
jdbcType=
"BIGINT"
/>
<result
column=
"option_value"
property=
"optionValue"
jdbcType=
"VARCHAR"
/>
</resultMap>
<sql
id=
"Base_Column_List"
>
id, user_id, ad_id, register_id, option_id, option_item_id, option_value, create_time
</sql>
<insert
id=
"insert"
parameterType=
"com.pcloud.book.advertising.entity.AdvertisingBmRegisterItem"
useGeneratedKeys=
"true"
keyProperty=
"id"
>
insert into advertising_bm_register_item (user_id, ad_id,
register_id, option_id, option_item_id,
option_value, create_time)
values (#{userId,jdbcType=BIGINT}, #{adId,jdbcType=BIGINT},
#{registerId,jdbcType=BIGINT}, #{optionId,jdbcType=BIGINT}, #{optionItemId,jdbcType=BIGINT},
#{optionValue,jdbcType=VARCHAR}, NOW())
</insert>
<select
id=
"getRegisterItemByUser"
resultMap=
"registerItemDtoMap"
parameterType=
"java.lang.Long"
>
SELECT
register_id,
option_id,
option_item_id,
option_value
FROM
advertising_bm_register_item a
LEFT JOIN advertising_bm_option b ON a.option_id = b.ID
WHERE
a.register_id = #{id}
GROUP BY
a.option_id
ORDER BY
b.seq ASC,
b.id ASC
</select>
</mapper>
\ No newline at end of file
pcloud-service-book/src/main/resources/mapper/advertising/AdvertisingBmRegisterMapper.xml
0 → 100644
View file @
fa773c80
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper
namespace=
"com.pcloud.book.advertising.dao.impl.BmRegisterDaoImpl"
>
<resultMap
id=
"BaseResultMap"
type=
"com.pcloud.book.advertising.entity.AdvertisingBmRegister"
>
<id
column=
"id"
property=
"id"
jdbcType=
"BIGINT"
/>
<result
column=
"user_id"
property=
"userId"
jdbcType=
"BIGINT"
/>
<result
column=
"ad_id"
property=
"adId"
jdbcType=
"BIGINT"
/>
<result
column=
"nick_name"
property=
"nickName"
jdbcType=
"VARCHAR"
/>
<result
column=
"create_time"
property=
"createTime"
jdbcType=
"TIMESTAMP"
/>
<result
column=
"qrcode_id"
property=
"qrcodeId"
jdbcType=
"BIGINT"
/>
</resultMap>
<!-- 微信端用户详细信息 -->
<resultMap
id=
"wechatDetailMap"
type=
"BmRegisterDTO"
>
<id
column=
"id"
property=
"id"
jdbcType=
"BIGINT"
/>
<result
column=
"user_id"
property=
"userId"
jdbcType=
"BIGINT"
/>
<result
column=
"ad_id"
property=
"adId"
jdbcType=
"BIGINT"
/>
<result
column=
"nick_name"
property=
"nickName"
jdbcType=
"VARCHAR"
/>
<result
column=
"create_time"
property=
"createTime"
jdbcType=
"TIMESTAMP"
/>
<result
column=
"qrcode_id"
property=
"qrcodeId"
jdbcType=
"BIGINT"
/>
<collection
property=
"registerItemDTOS"
column=
"id"
ofType=
"registerItemDtoMap"
select=
"com.pcloud.book.advertising.dao.impl.BmRegisterItemDaoImpl.getRegisterItemByUser"
/>
</resultMap>
<sql
id=
"Base_Column_List"
>
id, user_id, ad_id, nick_name, create_time, qrcode_id
</sql>
<insert
id=
"insert"
parameterType=
"com.pcloud.book.advertising.entity.AdvertisingBmRegister"
useGeneratedKeys=
"true"
keyProperty=
"id"
>
insert into advertising_bm_register (user_id, ad_id,
nick_name, create_time, qrcode_id)
values (#{userId,jdbcType=BIGINT}, #{adId,jdbcType=BIGINT},
#{nickName,jdbcType=VARCHAR}, NOW(), #{qrcodeId})
</insert>
<!-- 微信端获取个人报名信息 -->
<select
id=
"getDetailByUser"
resultMap=
"wechatDetailMap"
parameterType=
"map"
>
select
<include
refid=
"Base_Column_List"
/>
from advertising_bm_register
where ad_id = #{adId,jdbcType=BIGINT}
and user_id = #{wechatUserId}
<if
test=
"qrcodeId != null"
>
AND qrcode_id = #{qrcodeId}
</if>
ORDER BY create_time DESC
</select>
<select
id=
"getRegisterCountByAdId"
parameterType=
"map"
resultType=
"Long"
>
SELECT
IFNULL(COUNT(1), 0)
FROM
advertising_bm_register
WHERE
ad_id = #{adId,jdbcType=BIGINT}
<if
test=
"statisMonth != null"
>
AND DATE_FORMAT(create_time, "%Y-%m") = #{statisMonth}
</if>
</select>
<select
id=
"getRegisterCountByAdIds"
parameterType=
"list"
resultType=
"Long"
>
SELECT
IFNULL(COUNT(1), 0)
FROM
advertising_bm_register
WHERE ad_id in
<foreach
collection=
"list"
item=
"item"
open=
"("
separator=
","
close=
")"
>
${item}
</foreach>
</select>
<select
id=
"exportRegisterInfoById"
parameterType=
"map"
resultMap=
"wechatDetailMap"
>
select
<include
refid=
"Base_Column_List"
/>
from advertising_bm_register
where ad_id = #{adId}
<if
test=
"qrcodeId != null"
>
AND qrcode_id = #{qrcodeId}
</if>
ORDER BY create_time DESC
</select>
<select
id=
"getRegisterCountByAdIdQrcodeId"
parameterType=
"map"
resultType=
"Long"
>
SELECT
IFNULL(COUNT(1), 0)
FROM
advertising_bm_register
WHERE
ad_id = #{adId,jdbcType=BIGINT}
AND qrcode_id = #{qrcodeId}
<if
test=
"statisMonth != null"
>
AND DATE_FORMAT(create_time, "%Y-%m") = #{statisMonth}
</if>
</select>
</mapper>
\ No newline at end of file
pcloud-service-book/src/main/resources/mapper/advertising/AdvertisingIncomeDailyMapper.xml
View file @
fa773c80
...
@@ -179,6 +179,8 @@
...
@@ -179,6 +179,8 @@
ifnull(cr.click_num, 0) * m.price_each_time
ifnull(cr.click_num, 0) * m.price_each_time
WHEN 'CPM' THEN
WHEN 'CPM' THEN
ifnull(er.exposure_num, 0) * m.price_each_time
ifnull(er.exposure_num, 0) * m.price_each_time
WHEN 'CPA' THEN
ifnull(br.register_num, 0) * ifnull(m.price_each_time,0)
ELSE
ELSE
0
0
END
END
...
@@ -226,6 +228,18 @@
...
@@ -226,6 +228,18 @@
) cr ON cr.ad_id = b.ad_id
) cr ON cr.ad_id = b.ad_id
AND cr.book_id = b.book_id
AND cr.book_id = b.book_id
AND cr.channel_id = b.channel_id
AND cr.channel_id = b.channel_id
LEFT JOIN (
SELECT
ad_id,
COUNT(id) register_num
FROM
advertising_bm_register
WHERE
DATE_FORMAT(create_time, '%Y-%m-%d') = #{createDay}
AND qrcode_id IS NULL
GROUP BY
ad_id
) br ON br.ad_id = b.ad_id
WHERE
WHERE
b.ad_id = s.id
b.ad_id = s.id
AND s.id = m.ad_id
AND s.id = m.ad_id
...
@@ -275,6 +289,8 @@
...
@@ -275,6 +289,8 @@
ifnull(cr.click_num, 0) * m.price_each_time
ifnull(cr.click_num, 0) * m.price_each_time
WHEN 'CPM' THEN
WHEN 'CPM' THEN
ifnull(er.exposure_num, 0) * m.price_each_time
ifnull(er.exposure_num, 0) * m.price_each_time
WHEN 'CPA' THEN
ifnull(br.register_num, 0) * ifnull(m.price_each_time,0)
ELSE
ELSE
0
0
END
END
...
@@ -328,6 +344,21 @@
...
@@ -328,6 +344,21 @@
AND cr.book_id = b.book_id
AND cr.book_id = b.book_id
AND cr.channel_id = b.channel_id
AND cr.channel_id = b.channel_id
AND cr.from_id = b.qrcode_id
AND cr.from_id = b.qrcode_id
LEFT JOIN (
SELECT
ad_id,
qrcode_id,
COUNT(id) register_num
FROM
advertising_bm_register
WHERE
DATE_FORMAT(create_time, '%Y-%m-%d') = #{createDay}
AND qrcode_id IS NOT NULL
GROUP BY
ad_id,
qrcode_id
) br ON br.ad_id = b.ad_id
AND br.qrcode_id = b.qrcode_id
WHERE
WHERE
b.ad_id = s.id
b.ad_id = s.id
AND s.id = m.ad_id
AND s.id = m.ad_id
...
...
pcloud-service-book/src/main/resources/mapper/advertising/AdvertisingSpaceMapper.xml
View file @
fa773c80
...
@@ -17,6 +17,24 @@
...
@@ -17,6 +17,24 @@
<result
column=
"update_time"
property=
"updateTime"
jdbcType=
"TIMESTAMP"
/>
<result
column=
"update_time"
property=
"updateTime"
jdbcType=
"TIMESTAMP"
/>
<result
column=
"is_test"
property=
"isTest"
jdbcType=
"BIT"
/>
<result
column=
"is_test"
property=
"isTest"
jdbcType=
"BIT"
/>
<result
column=
"is_open"
property=
"isOpen"
jdbcType=
"BIT"
/>
<result
column=
"is_open"
property=
"isOpen"
jdbcType=
"BIT"
/>
<result
column=
"ad_detail_mode"
property=
"adDetailMode"
jdbcType=
"VARCHAR"
/>
<result
column=
"ad_detail_cover_pic"
property=
"adDetailCoverPic"
jdbcType=
"VARCHAR"
/>
<result
column=
"ad_detail_welfare_pic"
property=
"adDetailWelfarePic"
jdbcType=
"VARCHAR"
/>
<result
column=
"ad_detail_info"
property=
"adDetailInfo"
jdbcType=
"VARCHAR"
/>
<result
column=
"ad_detail_file_id"
property=
"adDetailFileId"
jdbcType=
"VARCHAR"
/>
<result
column=
"ad_detail_file_convert_state"
property=
"adDetailFileConvertState"
jdbcType=
"INTEGER"
/>
<result
column=
"ad_detail_file_url"
property=
"adDetailFileUrl"
jdbcType=
"VARCHAR"
/>
<result
column=
"ad_detail_title"
property=
"adDetailTitle"
jdbcType=
"VARCHAR"
/>
<result
column=
"ad_detail_file_pilot_second"
property=
"adDetailFilePilotSecond"
jdbcType=
"BIGINT"
/>
<result
column=
"ad_detail_file_pilot_url"
property=
"adDetailFilePilotUrl"
jdbcType=
"VARCHAR"
/>
<result
column=
"ad_detail_file_pilot_finish_tip"
property=
"adDetailFilePilotFinishTip"
jdbcType=
"VARCHAR"
/>
<result
column=
"ad_form_mobile_check"
property=
"adFormMobileCheck"
jdbcType=
"BIT"
/>
<result
column=
"ad_form_remark"
property=
"adFormRemark"
jdbcType=
"VARCHAR"
/>
<result
column=
"ad_form_button"
property=
"adFormButton"
jdbcType=
"VARCHAR"
/>
<result
column=
"ad_form_link"
property=
"adFormLink"
jdbcType=
"VARCHAR"
/>
<result
column=
"ad_detail_file_size"
property=
"adDetailFileSize"
jdbcType=
"BIGINT"
/>
<result
column=
"ad_detail_file_name"
property=
"adDetailFileName"
jdbcType=
"VARCHAR"
/>
<result
column=
"ad_detail_file_duration"
property=
"adDetailFileDuration"
jdbcType=
"BIGINT"
/>
</resultMap>
</resultMap>
<resultMap
id=
"AdvertisingSpaceDTO"
type=
"com.pcloud.book.advertising.dto.AdvertisingSpaceDTO"
>
<resultMap
id=
"AdvertisingSpaceDTO"
type=
"com.pcloud.book.advertising.dto.AdvertisingSpaceDTO"
>
...
@@ -35,11 +53,33 @@
...
@@ -35,11 +53,33 @@
<result
column=
"update_time"
property=
"updateTime"
jdbcType=
"TIMESTAMP"
/>
<result
column=
"update_time"
property=
"updateTime"
jdbcType=
"TIMESTAMP"
/>
<result
column=
"is_test"
property=
"isTest"
jdbcType=
"BIT"
/>
<result
column=
"is_test"
property=
"isTest"
jdbcType=
"BIT"
/>
<result
column=
"is_open"
property=
"isOpen"
jdbcType=
"BIT"
/>
<result
column=
"is_open"
property=
"isOpen"
jdbcType=
"BIT"
/>
<result
column=
"ad_detail_mode"
property=
"adDetailMode"
jdbcType=
"VARCHAR"
/>
<result
column=
"ad_detail_cover_pic"
property=
"adDetailCoverPic"
jdbcType=
"VARCHAR"
/>
<result
column=
"ad_detail_welfare_pic"
property=
"adDetailWelfarePic"
jdbcType=
"VARCHAR"
/>
<result
column=
"ad_detail_info"
property=
"adDetailInfo"
jdbcType=
"VARCHAR"
/>
<result
column=
"ad_detail_file_id"
property=
"adDetailFileId"
jdbcType=
"VARCHAR"
/>
<result
column=
"ad_detail_file_convert_state"
property=
"adDetailFileConvertState"
jdbcType=
"INTEGER"
/>
<result
column=
"ad_detail_file_url"
property=
"adDetailFileUrl"
jdbcType=
"VARCHAR"
/>
<result
column=
"ad_detail_title"
property=
"adDetailTitle"
jdbcType=
"VARCHAR"
/>
<result
column=
"ad_detail_file_pilot_second"
property=
"adDetailFilePilotSecond"
jdbcType=
"BIGINT"
/>
<result
column=
"ad_detail_file_pilot_url"
property=
"adDetailFilePilotUrl"
jdbcType=
"VARCHAR"
/>
<result
column=
"ad_detail_file_pilot_finish_tip"
property=
"adDetailFilePilotFinishTip"
jdbcType=
"VARCHAR"
/>
<result
column=
"ad_form_mobile_check"
property=
"adFormMobileCheck"
jdbcType=
"BIT"
/>
<result
column=
"ad_form_remark"
property=
"adFormRemark"
jdbcType=
"VARCHAR"
/>
<result
column=
"ad_form_button"
property=
"adFormButton"
jdbcType=
"VARCHAR"
/>
<result
column=
"ad_form_link"
property=
"adFormLink"
jdbcType=
"VARCHAR"
/>
<result
column=
"ad_detail_file_size"
property=
"adDetailFileSize"
jdbcType=
"BIGINT"
/>
<result
column=
"ad_detail_file_name"
property=
"adDetailFileName"
jdbcType=
"VARCHAR"
/>
<result
column=
"ad_detail_file_duration"
property=
"adDetailFileDuration"
jdbcType=
"BIGINT"
/>
</resultMap>
</resultMap>
<sql
id=
"Base_Column_List"
>
<sql
id=
"Base_Column_List"
>
id, ad_name, ad_position, ad_position_mode, ad_position_detail, master_id, ad_link, source_id,
id, ad_name, ad_position, ad_position_mode, ad_position_detail, master_id, ad_link, source_id,
ad_title, ad_slogan, ad_pic, create_time, update_time,is_test, is_open
ad_title, ad_slogan, ad_pic, create_time, update_time, is_test, is_open, ad_detail_mode,
ad_detail_cover_pic, ad_detail_welfare_pic, ad_detail_info, ad_detail_file_id, ad_detail_file_convert_state,
ad_detail_file_url, ad_detail_title, ad_detail_file_pilot_second, ad_detail_file_pilot_url,
ad_detail_file_pilot_finish_tip, ad_form_mobile_check, ad_form_remark, ad_form_button,
ad_form_link, ad_detail_file_size, ad_detail_file_name, ad_detail_file_duration
</sql>
</sql>
<select
id=
"getById"
resultMap=
"BaseResultMap"
parameterType=
"Long"
>
<select
id=
"getById"
resultMap=
"BaseResultMap"
parameterType=
"Long"
>
...
@@ -67,7 +107,26 @@
...
@@ -67,7 +107,26 @@
s.source_id,
s.source_id,
s.ad_title,
s.ad_title,
s.ad_slogan,
s.ad_slogan,
s.ad_pic
s.ad_pic,
s.master_id,
s.ad_detail_mode,
s.ad_detail_cover_pic,
s.ad_detail_welfare_pic,
s.ad_detail_info,
s.ad_detail_file_id,
s.ad_detail_file_convert_state,
s.ad_detail_file_url,
s.ad_detail_title,
s.ad_detail_file_pilot_second,
s.ad_detail_file_pilot_url,
s.ad_detail_file_pilot_finish_tip,
s.ad_form_mobile_check,
s.ad_form_remark,
s.ad_form_button,
s.ad_form_link,
s.ad_detail_file_size,
s.ad_detail_file_name,
s.ad_detail_file_duration
FROM
FROM
advertising_distribution_book b,
advertising_distribution_book b,
advertising_space s
advertising_space s
...
@@ -94,7 +153,26 @@
...
@@ -94,7 +153,26 @@
s.source_id,
s.source_id,
s.ad_title,
s.ad_title,
s.ad_slogan,
s.ad_slogan,
s.ad_pic
s.ad_pic,
s.master_id,
s.ad_detail_mode,
s.ad_detail_cover_pic,
s.ad_detail_welfare_pic,
s.ad_detail_info,
s.ad_detail_file_id,
s.ad_detail_file_convert_state,
s.ad_detail_file_url,
s.ad_detail_title,
s.ad_detail_file_pilot_second,
s.ad_detail_file_pilot_url,
s.ad_detail_file_pilot_finish_tip,
s.ad_form_mobile_check,
s.ad_form_remark,
s.ad_form_button,
s.ad_form_link,
s.ad_detail_file_size,
s.ad_detail_file_name,
s.ad_detail_file_duration
FROM
FROM
advertising_distribution_book b,
advertising_distribution_book b,
advertising_space s
advertising_space s
...
@@ -237,7 +315,14 @@
...
@@ -237,7 +315,14 @@
create_time,
create_time,
update_time,
update_time,
is_open,
is_open,
is_test,
ad_detail_mode,
ad_detail_cover_pic, ad_detail_welfare_pic, ad_detail_info,
ad_detail_file_id, ad_detail_file_convert_state,
ad_detail_file_url, ad_detail_title, ad_detail_file_pilot_second,
ad_detail_file_pilot_url, ad_detail_file_pilot_finish_tip,
ad_form_mobile_check, ad_form_remark, ad_form_button,
ad_form_link,ad_detail_file_size, ad_detail_file_name,
ad_detail_file_duration
</trim>
</trim>
<trim
prefix=
"values ("
suffix=
")"
suffixOverrides=
","
>
<trim
prefix=
"values ("
suffix=
")"
suffixOverrides=
","
>
#{adName,jdbcType=VARCHAR},
#{adName,jdbcType=VARCHAR},
...
@@ -253,7 +338,14 @@
...
@@ -253,7 +338,14 @@
NOW(),
NOW(),
NOW(),
NOW(),
#{isOpen,jdbcType=BIT},
#{isOpen,jdbcType=BIT},
0,
#{adDetailMode,jdbcType=VARCHAR},
#{adDetailCoverPic,jdbcType=VARCHAR}, #{adDetailWelfarePic,jdbcType=VARCHAR}, #{adDetailInfo,jdbcType=VARCHAR},
#{adDetailFileId,jdbcType=VARCHAR}, #{adDetailFileConvertState,jdbcType=INTEGER},
#{adDetailFileUrl,jdbcType=VARCHAR}, #{adDetailTitle,jdbcType=VARCHAR}, #{adDetailFilePilotSecond,jdbcType=BIGINT},
#{adDetailFilePilotUrl,jdbcType=VARCHAR}, #{adDetailFilePilotFinishTip,jdbcType=VARCHAR},
#{adFormMobileCheck,jdbcType=BIT}, #{adFormRemark,jdbcType=VARCHAR}, #{adFormButton,jdbcType=VARCHAR},
#{adFormLink,jdbcType=VARCHAR}, #{adDetailFileSize}, #{adDetailFileName},
#{adDetailFileDuration}
</trim>
</trim>
</insert>
</insert>
...
@@ -294,10 +386,86 @@
...
@@ -294,10 +386,86 @@
<if
test=
"isOpen != null"
>
<if
test=
"isOpen != null"
>
is_open = #{isOpen,jdbcType=BIT},
is_open = #{isOpen,jdbcType=BIT},
</if>
</if>
<if
test=
"adDetailMode != null"
>
ad_detail_mode = #{adDetailMode,jdbcType=VARCHAR},
</if>
<if
test=
"adDetailCoverPic != null"
>
ad_detail_cover_pic = #{adDetailCoverPic,jdbcType=VARCHAR},
</if>
<if
test=
"adDetailWelfarePic != null"
>
ad_detail_welfare_pic = #{adDetailWelfarePic,jdbcType=VARCHAR},
</if>
<if
test=
"adDetailInfo != null"
>
ad_detail_info = #{adDetailInfo,jdbcType=VARCHAR},
</if>
<if
test=
"adDetailFileId != null"
>
ad_detail_file_id = #{adDetailFileId,jdbcType=VARCHAR},
</if>
<if
test=
"adDetailFileConvertState != null"
>
ad_detail_file_convert_state = #{adDetailFileConvertState,jdbcType=INTEGER},
</if>
<if
test=
"adDetailFileUrl != null"
>
ad_detail_file_url = #{adDetailFileUrl,jdbcType=VARCHAR},
</if>
<if
test=
"adDetailTitle != null"
>
ad_detail_title = #{adDetailTitle,jdbcType=VARCHAR},
</if>
<if
test=
"adDetailFilePilotSecond != null"
>
ad_detail_file_pilot_second = #{adDetailFilePilotSecond,jdbcType=BIGINT},
</if>
<if
test=
"adDetailFilePilotUrl != null"
>
ad_detail_file_pilot_url = #{adDetailFilePilotUrl,jdbcType=VARCHAR},
</if>
<if
test=
"adDetailFilePilotFinishTip != null"
>
ad_detail_file_pilot_finish_tip = #{adDetailFilePilotFinishTip,jdbcType=VARCHAR},
</if>
<if
test=
"adFormMobileCheck != null"
>
ad_form_mobile_check = #{adFormMobileCheck,jdbcType=BIT},
</if>
<if
test=
"adFormRemark != null"
>
ad_form_remark = #{adFormRemark,jdbcType=VARCHAR},
</if>
<if
test=
"adFormButton != null"
>
ad_form_button = #{adFormButton,jdbcType=VARCHAR},
</if>
<if
test=
"adFormLink != null"
>
ad_form_link = #{adFormLink,jdbcType=VARCHAR},
</if>
<if
test=
"adDetailFileSize != null"
>
ad_detail_file_size = #{adDetailFileSize},
</if>
<if
test=
"adDetailFileName != null"
>
ad_detail_file_name = #{adDetailFileName},
</if>
<if
test=
"adDetailFileDuration != null"
>
ad_detail_file_duration = #{adDetailFileDuration},
</if>
</set>
</set>
where id = #{id,jdbcType=INTEGER}
where id = #{id,jdbcType=INTEGER}
</update>
</update>
<select
id=
"getUnConvertFile"
resultMap=
"BaseResultMap"
parameterType=
"String"
>
select
<include
refid=
"Base_Column_List"
></include>
from advertising_space
where ad_detail_file_id = #{adDetailFileId,jdbcType=VARCHAR}
</select>
<update
id=
"updateByFileId"
parameterType=
"com.pcloud.book.advertising.entity.AdvertisingSpace"
>
update advertising_space
<set>
<if
test=
"adDetailFileConvertState != null"
>
ad_detail_file_convert_state = #{adDetailFileConvertState,jdbcType=INTEGER},
</if>
<if
test=
"adDetailFileUrl != null"
>
ad_detail_file_url = #{adDetailFileUrl,jdbcType=VARCHAR},
</if>
<if
test=
"adDetailFilePilotUrl != null"
>
ad_detail_file_pilot_url = #{adDetailFilePilotUrl,jdbcType=VARCHAR},
</if>
</set>
where ad_detail_file_id = #{adDetailFileId,jdbcType=VARCHAR}
</update>
<update
id=
"updateTestStatus"
parameterType=
"map"
>
<update
id=
"updateTestStatus"
parameterType=
"map"
>
UPDATE advertising_space
UPDATE advertising_space
SET is_test = #{isTest}
SET is_test = #{isTest}
...
@@ -305,4 +473,21 @@
...
@@ -305,4 +473,21 @@
id = #{id}
id = #{id}
</update>
</update>
<!--根据id集合获取-->
<select
id=
"getByIds"
parameterType=
"map"
resultMap=
"BaseResultMap"
>
select
<include
refid=
"Base_Column_List"
/>
from advertising_space
where id in
<foreach
collection=
"ids"
item=
"item"
open=
"("
separator=
","
close=
")"
>
${item}
</foreach>
</select>
<select
id=
"getAdIdsByMasterId"
resultType=
"Long"
parameterType=
"Long"
>
SELECT
id
FROM
advertising_space
WHERE
master_id = #{masterId}
</select>
</mapper>
</mapper>
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment