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
f870bda1
Commit
f870bda1
authored
Oct 21, 2019
by
朱亚洁
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
外链转换与统计
parent
13d05208
Show whitespace changes
Inline
Side-by-side
Showing
24 changed files
with
1200 additions
and
7 deletions
+1200
-7
GroupTagBiz.java
...ain/java/com/pcloud/book/advertising/biz/GroupTagBiz.java
+1
-1
LinkRevertBiz.java
...n/java/com/pcloud/book/advertising/biz/LinkRevertBiz.java
+60
-0
AdvertisingSpaceBizImpl.java
...ud/book/advertising/biz/impl/AdvertisingSpaceBizImpl.java
+5
-0
LinkRevertBizImpl.java
...m/pcloud/book/advertising/biz/impl/LinkRevertBizImpl.java
+246
-0
AdvertisingLinkClickDao.java
.../pcloud/book/advertising/dao/AdvertisingLinkClickDao.java
+21
-0
AdvertisingLinkRevertDao.java
...pcloud/book/advertising/dao/AdvertisingLinkRevertDao.java
+30
-0
AdvertisingLinkSendDao.java
...m/pcloud/book/advertising/dao/AdvertisingLinkSendDao.java
+23
-0
AdvertisingLinkClickDaoImpl.java
...ook/advertising/dao/impl/AdvertisingLinkClickDaoImpl.java
+23
-0
AdvertisingLinkRevertDaoImpl.java
...ok/advertising/dao/impl/AdvertisingLinkRevertDaoImpl.java
+34
-0
AdvertisingLinkSendDaoImpl.java
...book/advertising/dao/impl/AdvertisingLinkSendDaoImpl.java
+29
-0
AdvertisingSpaceDTO.java
.../com/pcloud/book/advertising/dto/AdvertisingSpaceDTO.java
+15
-0
LinkRevertRecordDTO.java
.../com/pcloud/book/advertising/dto/LinkRevertRecordDTO.java
+141
-0
AdvertisingLinkClick.java
.../pcloud/book/advertising/entity/AdvertisingLinkClick.java
+48
-0
AdvertisingLinkRevert.java
...pcloud/book/advertising/entity/AdvertisingLinkRevert.java
+85
-0
AdvertisingLinkSend.java
...m/pcloud/book/advertising/entity/AdvertisingLinkSend.java
+66
-0
AdvertisingSpace.java
.../com/pcloud/book/advertising/entity/AdvertisingSpace.java
+16
-0
BookJumpTypeEnum.java
...a/com/pcloud/book/advertising/enums/BookJumpTypeEnum.java
+26
-0
LinkRevertFacade.java
.../com/pcloud/book/advertising/facade/LinkRevertFacade.java
+136
-0
AdvertisingSpaceServiceImpl.java
...advertising/service/impl/AdvertisingSpaceServiceImpl.java
+5
-0
WechatGroupConsr.java
...om/pcloud/book/consumer/wechatgroup/WechatGroupConsr.java
+13
-1
AdvertisingLinkClickMapper.xml
...sources/mapper/advertising/AdvertisingLinkClickMapper.xml
+31
-0
AdvertisingLinkRevertMapper.xml
...ources/mapper/advertising/AdvertisingLinkRevertMapper.xml
+80
-0
AdvertisingLinkSendMapper.xml
...esources/mapper/advertising/AdvertisingLinkSendMapper.xml
+54
-0
AdvertisingSpaceMapper.xml
...n/resources/mapper/advertising/AdvertisingSpaceMapper.xml
+12
-5
No files found.
pcloud-service-book/src/main/java/com/pcloud/book/advertising/biz/GroupTagBiz.java
View file @
f870bda1
...
...
@@ -13,7 +13,7 @@ import java.util.List;
import
java.util.Map
;
/**
* @描述:微信群标记
广告主
* @描述:微信群标记
品牌方
* @作者:zhuyajie
* @创建时间:18:47 2019/8/22
* @版本:1.0
...
...
pcloud-service-book/src/main/java/com/pcloud/book/advertising/biz/LinkRevertBiz.java
0 → 100644
View file @
f870bda1
package
com
.
pcloud
.
book
.
advertising
.
biz
;
import
com.pcloud.book.advertising.dto.LinkRevertRecordDTO
;
import
com.pcloud.book.advertising.entity.AdvertisingLinkClick
;
import
com.pcloud.book.advertising.entity.AdvertisingLinkRevert
;
import
com.pcloud.common.page.PageBeanNew
;
/**
* @描述:链接转换
* @作者:zhuyajie
* @创建时间:16:58 2019/10/10
* @版本:1.0
*/
public
interface
LinkRevertBiz
{
/**
* 添加链接转换记录
* @param advertisingLinkRevert
* @return
*/
Long
addRevertRecord
(
AdvertisingLinkRevert
advertisingLinkRevert
);
/**
* 删除转换记录
* @param id
*/
void
deleteRevertRecordById
(
Long
id
);
/**
* 分页查询转换记录
* @param brandId
* @return
*/
PageBeanNew
<
LinkRevertRecordDTO
>
listPageRevertRecord
(
Long
brandId
,
Integer
currentPage
,
Integer
numPerPage
);
/**
* 转换记录列表导出
* @param brandId
*/
void
exportRevertRecordList
(
Long
brandId
,
Long
partyId
);
/**
* 添加链接点击记录
* @param advertisingLinkClick
* @return
*/
void
addClickRecord
(
AdvertisingLinkClick
advertisingLinkClick
);
/**
* 根据id查询
* @param id
* @return
*/
AdvertisingLinkRevert
getById
(
Long
id
);
/**
* 统计昨日链接发送次数
*/
void
addYesterdaySendStatistic
();
}
pcloud-service-book/src/main/java/com/pcloud/book/advertising/biz/impl/AdvertisingSpaceBizImpl.java
View file @
f870bda1
...
...
@@ -55,6 +55,7 @@ import com.pcloud.book.advertising.enums.AdDetailModeEnum;
import
com.pcloud.book.advertising.enums.AdPositionDetailEnum
;
import
com.pcloud.book.advertising.enums.AdPositionEnum
;
import
com.pcloud.book.advertising.enums.AdPositionModeEnum
;
import
com.pcloud.book.advertising.enums.BookJumpTypeEnum
;
import
com.pcloud.book.advertising.enums.PutTypeEnum
;
import
com.pcloud.book.advertising.enums.SettlementMethodEnum
;
import
com.pcloud.book.base.exception.BookBizException
;
...
...
@@ -374,6 +375,10 @@ public class AdvertisingSpaceBizImpl implements AdvertisingSpaceBiz {
if
(
null
!=
bookNum
&&
bookNum
>
0
&&
!
SettlementMethodEnum
.
CPA
.
code
.
equals
(
advertisingSpace
.
getSettlementMethod
()))
{
throw
new
BookBizException
(
BookBizException
.
PARAM_IS_ERROR
,
"已投放书刊的广告位不能修改!"
);
}
if
(!
AdPositionEnum
.
WECHAT_GROUP_MSG
.
positionCode
.
equals
(
advertisingSpace
.
getAdPosition
())
&&
null
==
advertisingSpace
.
getBookJumpType
())
{
//书刊广告默认跳到链接
advertisingSpace
.
setBookJumpType
(
BookJumpTypeEnum
.
LINK
.
value
);
}
advertisingSpaceDao
.
update
(
advertisingSpace
);
// 修改结算方式
AdvertisingSettlementMethodDTO
methodDTO
=
advertisingSettlementMethodDao
.
getByMasterIdAndAdId
(
space
.
getMasterId
(),
space
.
getId
());
...
...
pcloud-service-book/src/main/java/com/pcloud/book/advertising/biz/impl/LinkRevertBizImpl.java
0 → 100644
View file @
f870bda1
package
com
.
pcloud
.
book
.
advertising
.
biz
.
impl
;
import
com.pcloud.book.advertising.biz.LinkRevertBiz
;
import
com.pcloud.book.advertising.dao.AdvertisingBrandDao
;
import
com.pcloud.book.advertising.dao.AdvertisingGroupTagDao
;
import
com.pcloud.book.advertising.dao.AdvertisingLinkClickDao
;
import
com.pcloud.book.advertising.dao.AdvertisingLinkRevertDao
;
import
com.pcloud.book.advertising.dao.AdvertisingLinkSendDao
;
import
com.pcloud.book.advertising.dto.AdvertisingBrandDTO
;
import
com.pcloud.book.advertising.dto.LinkRevertRecordDTO
;
import
com.pcloud.book.advertising.entity.AdvertisingLinkClick
;
import
com.pcloud.book.advertising.entity.AdvertisingLinkRevert
;
import
com.pcloud.book.advertising.entity.AdvertisingLinkSend
;
import
com.pcloud.book.base.exception.BookBizException
;
import
com.pcloud.book.consumer.common.ExportConsr
;
import
com.pcloud.book.consumer.message.MessageConsr
;
import
com.pcloud.book.consumer.wechatgroup.WechatGroupConsr
;
import
com.pcloud.book.util.common.ThreadPoolUtils
;
import
com.pcloud.common.core.aspect.ParamLog
;
import
com.pcloud.common.core.constant.SystemCode
;
import
com.pcloud.common.page.PageBeanNew
;
import
com.pcloud.common.page.PageParam
;
import
com.pcloud.common.utils.DateUtils
;
import
com.pcloud.common.utils.ListUtils
;
import
com.pcloud.common.utils.httpclient.UrlUtils
;
import
com.pcloud.common.utils.string.StringUtil
;
import
com.pcloud.wechatgroup.message.dto.LinkGroupParamDTO
;
import
org.apache.commons.collections.MapUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.stereotype.Component
;
import
java.net.URLEncoder
;
import
java.util.ArrayList
;
import
java.util.Date
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.stream.Collectors
;
/**
* @描述:链接转换
* @作者:zhuyajie
* @创建时间:16:58 2019/10/10
* @版本:1.0
*/
@Component
(
"linkRevertBiz"
)
public
class
LinkRevertBizImpl
implements
LinkRevertBiz
{
@Value
(
"${wechat.group.link.prefix}"
)
private
String
wechatGroupLinkPrefix
;
@Autowired
private
AdvertisingLinkRevertDao
advertisingLinkRevertDao
;
@Autowired
private
AdvertisingBrandDao
advertisingBrandDao
;
@Autowired
private
ExportConsr
exportConsr
;
@Autowired
private
MessageConsr
messageConsr
;
@Autowired
private
AdvertisingLinkClickDao
advertisingLinkClickDao
;
@Autowired
private
WechatGroupConsr
wechatGroupConsr
;
@Autowired
private
AdvertisingGroupTagDao
advertisingGroupTagDao
;
@Autowired
private
AdvertisingLinkSendDao
advertisingLinkSendDao
;
@Override
public
Long
addRevertRecord
(
AdvertisingLinkRevert
advertisingLinkRevert
)
{
advertisingLinkRevertDao
.
insert
(
advertisingLinkRevert
);
Long
id
=
advertisingLinkRevert
.
getId
();
String
revertLink
=
wechatGroupLinkPrefix
+
"/linkRevert?link_id="
+
id
;
String
shortLink
=
UrlUtils
.
getShortUrl4Own
(
wechatGroupLinkPrefix
+
"/link?url="
+
URLEncoder
.
encode
(
revertLink
));
if
(
StringUtil
.
isEmpty
(
shortLink
))
{
throw
new
BookBizException
(
BookBizException
.
ERROR
,
"短链接转换失败"
);
}
AdvertisingLinkRevert
revert
=
new
AdvertisingLinkRevert
();
revert
.
setId
(
id
);
revert
.
setRevertLink
(
revertLink
);
revert
.
setShortLink
(
shortLink
);
advertisingLinkRevertDao
.
update
(
revert
);
return
id
;
}
@Override
public
void
deleteRevertRecordById
(
Long
id
)
{
advertisingLinkRevertDao
.
deleteById
(
id
);
}
@Override
public
PageBeanNew
<
LinkRevertRecordDTO
>
listPageRevertRecord
(
Long
brandId
,
Integer
currentPage
,
Integer
numPerPage
)
{
Map
<
String
,
Object
>
paramMap
=
new
HashMap
<>();
paramMap
.
put
(
"brandId"
,
brandId
);
PageBeanNew
<
LinkRevertRecordDTO
>
pageBean
=
advertisingLinkRevertDao
.
listPageNew
(
new
PageParam
(
currentPage
,
numPerPage
),
paramMap
,
"listRevertRecord"
);
if
(
null
==
pageBean
||
ListUtils
.
isEmpty
(
pageBean
.
getRecordList
()))
{
return
new
PageBeanNew
<>(
currentPage
,
numPerPage
,
0
,
new
ArrayList
<>());
}
List
<
LinkRevertRecordDTO
>
list
=
pageBean
.
getRecordList
();
List
<
LinkGroupParamDTO
>
paramDTOS
=
new
ArrayList
<>();
for
(
LinkRevertRecordDTO
linkRevertRecordDTO
:
list
)
{
if
(
null
==
linkRevertRecordDTO
||
StringUtil
.
isEmpty
(
linkRevertRecordDTO
.
getShortLink
()))
{
continue
;
}
List
<
String
>
groupIds
=
advertisingGroupTagDao
.
getTagWxGroupIdsByBrandId
(
linkRevertRecordDTO
.
getBrandId
());
if
(
ListUtils
.
isEmpty
(
groupIds
))
{
continue
;
}
LinkGroupParamDTO
paramDTO
=
new
LinkGroupParamDTO
();
paramDTO
.
setLink
(
linkRevertRecordDTO
.
getShortLink
());
paramDTO
.
setWxGroupIds
(
groupIds
);
paramDTO
.
setDate
(
DateUtils
.
today
());
paramDTOS
.
add
(
paramDTO
);
}
//今日之前发送次数
List
<
Long
>
linkIds
=
list
.
stream
().
filter
(
s
->
s
.
getLink
()
!=
null
).
map
(
LinkRevertRecordDTO:
:
getId
).
distinct
().
collect
(
Collectors
.
toList
());
Map
<
Long
,
LinkRevertRecordDTO
>
sendCountMap
=
advertisingLinkSendDao
.
mapSendCount
(
linkIds
);
//今日发送次数
Map
<
String
,
Integer
>
sendCountTodayMap
=
wechatGroupConsr
.
getLinkSendCount
(
paramDTOS
);
for
(
LinkRevertRecordDTO
revertRecordDTO
:
list
)
{
AdvertisingBrandDTO
brandDTO
=
advertisingBrandDao
.
getBrandById
(
revertRecordDTO
.
getBrandId
());
revertRecordDTO
.
setBrandName
(
null
==
brandDTO
?
""
:
brandDTO
.
getBrandName
());
LinkRevertRecordDTO
clickStatistic
=
advertisingLinkClickDao
.
getCountByLink
(
revertRecordDTO
.
getShortLink
());
revertRecordDTO
.
setClickCount
(
null
==
clickStatistic
?
0
:
clickStatistic
.
getClickCount
());
revertRecordDTO
.
setClickUserCount
(
null
==
clickStatistic
?
0
:
clickStatistic
.
getClickUserCount
());
Integer
sendCount
=
0
;
if
(!
MapUtils
.
isEmpty
(
sendCountMap
)
&&
sendCountMap
.
containsKey
(
revertRecordDTO
.
getId
()))
{
sendCount
=
sendCountMap
.
get
(
revertRecordDTO
.
getId
()).
getSendCount
();
}
if
(!
MapUtils
.
isEmpty
(
sendCountTodayMap
)
&&
sendCountTodayMap
.
containsKey
(
revertRecordDTO
.
getShortLink
()))
{
sendCount
=
sendCount
+
sendCountTodayMap
.
get
(
revertRecordDTO
.
getShortLink
());
}
revertRecordDTO
.
setSendCount
(
sendCount
);
}
return
pageBean
;
}
@Override
public
void
exportRevertRecordList
(
Long
brandId
,
Long
partyId
)
{
List
<
LinkRevertRecordDTO
>
list
=
advertisingLinkRevertDao
.
listRevertRecord
(
brandId
);
if
(
ListUtils
.
isEmpty
(
list
))
{
return
;
}
ThreadPoolUtils
.
EXPORT_THREAD_POOL
.
execute
(()
->
{
String
[]
rowsName
=
{
"序号"
,
"品牌方"
,
"外链"
,
"短链"
,
"链接发送次数"
,
"浏览量"
,
"浏览人数"
,
"生成时间"
};
List
<
Object
[]>
dataList
=
new
ArrayList
<
Object
[]>();
List
<
LinkGroupParamDTO
>
paramDTOS
=
new
ArrayList
<>();
for
(
LinkRevertRecordDTO
linkRevertRecordDTO
:
list
)
{
List
<
String
>
groupIds
=
advertisingGroupTagDao
.
getTagWxGroupIdsByBrandId
(
linkRevertRecordDTO
.
getBrandId
());
if
(
ListUtils
.
isEmpty
(
groupIds
))
{
continue
;
}
LinkGroupParamDTO
paramDTO
=
new
LinkGroupParamDTO
();
paramDTO
.
setLink
(
linkRevertRecordDTO
.
getShortLink
());
paramDTO
.
setWxGroupIds
(
groupIds
);
paramDTO
.
setDate
(
DateUtils
.
today
());
paramDTOS
.
add
(
paramDTO
);
}
//今日之前发送次数
List
<
Long
>
linkIds
=
list
.
stream
().
filter
(
s
->
s
.
getLink
()
!=
null
).
map
(
LinkRevertRecordDTO:
:
getId
).
distinct
().
collect
(
Collectors
.
toList
());
Map
<
Long
,
LinkRevertRecordDTO
>
sendCountMap
=
advertisingLinkSendDao
.
mapSendCount
(
linkIds
);
//今日发送次数
Map
<
String
,
Integer
>
sendCountTodayMap
=
wechatGroupConsr
.
getLinkSendCount
(
paramDTOS
);
for
(
int
i
=
0
,
size
=
list
.
size
();
i
<
size
;
i
++)
{
LinkRevertRecordDTO
revertRecordDTO
=
list
.
get
(
i
);
Object
[]
obj
=
new
Object
[
rowsName
.
length
];
obj
[
0
]
=
i
+
1
;
AdvertisingBrandDTO
brandDTO
=
advertisingBrandDao
.
getBrandById
(
revertRecordDTO
.
getBrandId
());
obj
[
1
]
=
null
==
brandDTO
?
""
:
brandDTO
.
getBrandName
();
obj
[
2
]
=
revertRecordDTO
.
getLink
();
obj
[
3
]
=
revertRecordDTO
.
getShortLink
();
Integer
sendCount
=
0
;
if
(!
MapUtils
.
isEmpty
(
sendCountMap
)
&&
sendCountMap
.
containsKey
(
revertRecordDTO
.
getId
()))
{
sendCount
=
sendCountMap
.
get
(
revertRecordDTO
.
getId
()).
getSendCount
();
}
if
(!
MapUtils
.
isEmpty
(
sendCountTodayMap
)
&&
sendCountTodayMap
.
containsKey
(
revertRecordDTO
.
getShortLink
()))
{
sendCount
=
sendCount
+
sendCountTodayMap
.
get
(
revertRecordDTO
.
getShortLink
());
}
obj
[
4
]
=
sendCount
;
LinkRevertRecordDTO
clickStatistic
=
advertisingLinkClickDao
.
getCountByLink
(
revertRecordDTO
.
getShortLink
());
obj
[
5
]
=
null
==
clickStatistic
?
0
:
clickStatistic
.
getClickCount
();
obj
[
6
]
=
null
==
clickStatistic
?
0
:
clickStatistic
.
getClickUserCount
();
obj
[
7
]
=
DateUtils
.
formatDate
(
revertRecordDTO
.
getCreateTime
(),
DateUtils
.
DATE_FORMAT_DATETIME
);
dataList
.
add
(
obj
);
}
String
fileName
=
"外链转换统计-"
+
DateUtils
.
getStrFormTime
(
"yyyyMMdd"
,
new
Date
());
String
fileUrl
=
exportConsr
.
exportExcel
(
fileName
,
rowsName
,
dataList
);
String
content
=
String
.
format
(
"{\"commitTime\":\"%s\",\"type\":\"%s\"}"
,
DateUtils
.
formatDate
(
new
Date
()),
fileName
);
messageConsr
.
sendLetter
(
partyId
,
partyId
,
content
,
SystemCode
.
pcloud
.
code
,
"pcloud_book_download"
,
fileUrl
,
fileName
,
null
,
null
);
});
}
@Override
public
void
addClickRecord
(
AdvertisingLinkClick
advertisingLinkClick
)
{
advertisingLinkClickDao
.
insert
(
advertisingLinkClick
);
}
@Override
public
AdvertisingLinkRevert
getById
(
Long
id
)
{
return
advertisingLinkRevertDao
.
getById
(
id
);
}
@Override
@ParamLog
(
"统计昨日链接发送次数"
)
public
void
addYesterdaySendStatistic
()
{
new
Thread
()
{
@Override
public
void
run
()
{
List
<
AdvertisingLinkRevert
>
list
=
advertisingLinkRevertDao
.
getAll
();
if
(
ListUtils
.
isEmpty
(
list
))
{
return
;
}
List
<
Long
>
brandIds
=
list
.
stream
().
filter
(
s
->
s
.
getBrandId
()
!=
null
).
map
(
AdvertisingLinkRevert:
:
getBrandId
).
distinct
().
collect
(
Collectors
.
toList
());
Map
<
Long
,
List
<
String
>>
groupMap
=
new
HashMap
<>();
for
(
Long
brandId
:
brandIds
)
{
List
<
String
>
groupIds
=
advertisingGroupTagDao
.
getTagWxGroupIdsByBrandId
(
brandId
);
groupMap
.
put
(
brandId
,
groupIds
);
}
List
<
LinkGroupParamDTO
>
paramDTOS
=
new
ArrayList
<>();
for
(
AdvertisingLinkRevert
linkRevert
:
list
)
{
LinkGroupParamDTO
paramDTO
=
new
LinkGroupParamDTO
();
paramDTO
.
setLink
(
linkRevert
.
getShortLink
());
paramDTO
.
setWxGroupIds
(
groupMap
.
get
(
linkRevert
.
getBrandId
()));
paramDTO
.
setDate
(
DateUtils
.
getYesterday
());
paramDTOS
.
add
(
paramDTO
);
}
Map
<
String
,
Integer
>
sendCountMap
=
wechatGroupConsr
.
getLinkSendCount
(
paramDTOS
);
List
<
AdvertisingLinkSend
>
sendList
=
new
ArrayList
<>();
for
(
AdvertisingLinkRevert
linkRevert
:
list
)
{
AdvertisingLinkSend
linkSend
=
new
AdvertisingLinkSend
();
linkSend
.
setLinkId
(
linkRevert
.
getId
());
Integer
sendCount
=
0
;
if
(!
MapUtils
.
isEmpty
(
sendCountMap
)
&&
sendCountMap
.
containsKey
(
linkRevert
.
getShortLink
()))
{
sendCount
=
sendCountMap
.
get
(
linkRevert
.
getShortLink
());
}
linkSend
.
setSendCount
(
sendCount
);
linkSend
.
setCreateTime
(
new
Date
());
linkSend
.
setStatisticDate
(
DateUtils
.
addDay
(
new
Date
(),
-
1
));
sendList
.
add
(
linkSend
);
}
advertisingLinkSendDao
.
insert
(
sendList
);
}
}.
start
();
}
}
pcloud-service-book/src/main/java/com/pcloud/book/advertising/dao/AdvertisingLinkClickDao.java
0 → 100644
View file @
f870bda1
package
com
.
pcloud
.
book
.
advertising
.
dao
;
import
com.pcloud.book.advertising.dto.LinkRevertRecordDTO
;
import
com.pcloud.book.advertising.entity.AdvertisingLinkClick
;
import
com.pcloud.common.core.dao.BaseDao
;
/**
* @描述:链接点击记录
* @作者:zhuyajie
* @创建时间:16:51 2019/10/10
* @版本:1.0
*/
public
interface
AdvertisingLinkClickDao
extends
BaseDao
<
AdvertisingLinkClick
>
{
/**
* 查链接点击次数人数
* @param shortLink
* @return
*/
LinkRevertRecordDTO
getCountByLink
(
String
shortLink
);
}
pcloud-service-book/src/main/java/com/pcloud/book/advertising/dao/AdvertisingLinkRevertDao.java
0 → 100644
View file @
f870bda1
package
com
.
pcloud
.
book
.
advertising
.
dao
;
import
com.pcloud.book.advertising.dto.LinkRevertRecordDTO
;
import
com.pcloud.book.advertising.entity.AdvertisingLinkRevert
;
import
com.pcloud.common.core.dao.BaseDao
;
import
java.util.List
;
/**
* @描述:链接转换记录
* @作者:zhuyajie
* @创建时间:16:54 2019/10/10
* @版本:1.0
*/
public
interface
AdvertisingLinkRevertDao
extends
BaseDao
<
AdvertisingLinkRevert
>
{
/**
* 转码记录列表
* @param brandId
* @return
*/
List
<
LinkRevertRecordDTO
>
listRevertRecord
(
Long
brandId
);
/**
* 所有链接
* @return
*/
public
List
<
AdvertisingLinkRevert
>
getAll
();
}
pcloud-service-book/src/main/java/com/pcloud/book/advertising/dao/AdvertisingLinkSendDao.java
0 → 100644
View file @
f870bda1
package
com
.
pcloud
.
book
.
advertising
.
dao
;
import
com.pcloud.book.advertising.dto.LinkRevertRecordDTO
;
import
com.pcloud.book.advertising.entity.AdvertisingLinkSend
;
import
com.pcloud.common.core.dao.BaseDao
;
import
java.util.List
;
import
java.util.Map
;
/**
* @描述:链接发送统计
* @作者:zhuyajie
* @创建时间:15:47 2019/10/17
* @版本:1.0
*/
public
interface
AdvertisingLinkSendDao
extends
BaseDao
<
AdvertisingLinkSend
>{
/**
* 链接发送次数
* @param linkIds
* @return
*/
Map
<
Long
,
LinkRevertRecordDTO
>
mapSendCount
(
List
<
Long
>
linkIds
);
}
pcloud-service-book/src/main/java/com/pcloud/book/advertising/dao/impl/AdvertisingLinkClickDaoImpl.java
0 → 100644
View file @
f870bda1
package
com
.
pcloud
.
book
.
advertising
.
dao
.
impl
;
import
com.pcloud.book.advertising.dao.AdvertisingLinkClickDao
;
import
com.pcloud.book.advertising.dto.LinkRevertRecordDTO
;
import
com.pcloud.book.advertising.entity.AdvertisingLinkClick
;
import
com.pcloud.common.core.dao.BaseDaoImpl
;
import
org.springframework.stereotype.Component
;
/**
* @描述:链接点击记录
* @作者:zhuyajie
* @创建时间:16:52 2019/10/10
* @版本:1.0
*/
@Component
(
"advertisingLinkClickDao"
)
public
class
AdvertisingLinkClickDaoImpl
extends
BaseDaoImpl
<
AdvertisingLinkClick
>
implements
AdvertisingLinkClickDao
{
@Override
public
LinkRevertRecordDTO
getCountByLink
(
String
shortLink
)
{
return
getSessionTemplate
().
selectOne
(
getStatement
(
"getCountByLink"
),
shortLink
);
}
}
pcloud-service-book/src/main/java/com/pcloud/book/advertising/dao/impl/AdvertisingLinkRevertDaoImpl.java
0 → 100644
View file @
f870bda1
package
com
.
pcloud
.
book
.
advertising
.
dao
.
impl
;
import
com.pcloud.book.advertising.dao.AdvertisingLinkRevertDao
;
import
com.pcloud.book.advertising.dto.LinkRevertRecordDTO
;
import
com.pcloud.book.advertising.entity.AdvertisingLinkRevert
;
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
* @创建时间:16:54 2019/10/10
* @版本:1.0
*/
@Component
(
"advertisingLinkRevertDao"
)
public
class
AdvertisingLinkRevertDaoImpl
extends
BaseDaoImpl
<
AdvertisingLinkRevert
>
implements
AdvertisingLinkRevertDao
{
@Override
public
List
<
LinkRevertRecordDTO
>
listRevertRecord
(
Long
brandId
)
{
Map
<
String
,
Object
>
paramMap
=
new
HashMap
<>();
paramMap
.
put
(
"brandId"
,
brandId
);
return
getSessionTemplate
().
selectList
(
getStatement
(
"listRevertRecord"
),
paramMap
);
}
@Override
public
List
<
AdvertisingLinkRevert
>
getAll
()
{
return
getSessionTemplate
().
selectList
(
getStatement
(
"getAll"
));
}
}
pcloud-service-book/src/main/java/com/pcloud/book/advertising/dao/impl/AdvertisingLinkSendDaoImpl.java
0 → 100644
View file @
f870bda1
package
com
.
pcloud
.
book
.
advertising
.
dao
.
impl
;
import
com.pcloud.book.advertising.dao.AdvertisingLinkSendDao
;
import
com.pcloud.book.advertising.dto.LinkRevertRecordDTO
;
import
com.pcloud.book.advertising.entity.AdvertisingLinkSend
;
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
* @创建时间:15:48 2019/10/17
* @版本:1.0
*/
@Component
(
"advertisingLinkSendDao"
)
public
class
AdvertisingLinkSendDaoImpl
extends
BaseDaoImpl
<
AdvertisingLinkSend
>
implements
AdvertisingLinkSendDao
{
@Override
public
Map
<
Long
,
LinkRevertRecordDTO
>
mapSendCount
(
List
<
Long
>
linkIds
)
{
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
map
.
put
(
"linkIds"
,
linkIds
);
return
getSessionTemplate
().
selectMap
(
getStatement
(
"mapSendCount"
),
map
,
"id"
);
}
}
pcloud-service-book/src/main/java/com/pcloud/book/advertising/dto/AdvertisingSpaceDTO.java
View file @
f870bda1
...
...
@@ -320,6 +320,11 @@ public class AdvertisingSpaceDTO extends BaseDto {
* cp内容id
*/
private
Long
cpaId
;
/**
* 书刊广告跳转类型
*/
private
Integer
bookJumpType
;
public
Long
getId
()
{
return
id
;
}
...
...
@@ -843,6 +848,14 @@ public class AdvertisingSpaceDTO extends BaseDto {
this
.
cpaId
=
cpaId
;
}
public
Integer
getBookJumpType
()
{
return
bookJumpType
;
}
public
void
setBookJumpType
(
Integer
bookJumpType
)
{
this
.
bookJumpType
=
bookJumpType
;
}
@Override
public
String
toString
()
{
return
"AdvertisingSpaceDTO{"
+
...
...
@@ -911,6 +924,7 @@ public class AdvertisingSpaceDTO extends BaseDto {
", distributionNum="
+
distributionNum
+
", advertisingDetailFileList="
+
advertisingDetailFileList
+
", cpaId="
+
cpaId
+
", bookJumpType="
+
bookJumpType
+
'}'
;
}
}
\ No newline at end of file
pcloud-service-book/src/main/java/com/pcloud/book/advertising/dto/LinkRevertRecordDTO.java
0 → 100644
View file @
f870bda1
package
com
.
pcloud
.
book
.
advertising
.
dto
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.pcloud.common.dto.BaseDto
;
import
java.util.Date
;
/**
* @描述:链接转换记录
* @作者:zhuyajie
* @创建时间:17:13 2019/10/10
* @版本:1.0
*/
public
class
LinkRevertRecordDTO
extends
BaseDto
{
/**
* 记录id
*/
private
Long
id
;
/**
*品牌方id
*/
private
Long
brandId
;
/**
* 品牌方名称
*/
private
String
brandName
;
/**
*原链接
*/
private
String
link
;
/**
*短链接
*/
private
String
shortLink
;
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
private
Date
createTime
;
/**
* 发送次数
*/
private
Integer
sendCount
;
/**
* 点击次数
*/
private
Integer
clickCount
;
/**
* 点击人数
*/
private
Integer
clickUserCount
;
public
Long
getBrandId
()
{
return
brandId
;
}
public
void
setBrandId
(
Long
brandId
)
{
this
.
brandId
=
brandId
;
}
public
String
getBrandName
()
{
return
brandName
;
}
public
void
setBrandName
(
String
brandName
)
{
this
.
brandName
=
brandName
;
}
public
String
getLink
()
{
return
link
;
}
public
void
setLink
(
String
link
)
{
this
.
link
=
link
;
}
public
String
getShortLink
()
{
return
shortLink
;
}
public
void
setShortLink
(
String
shortLink
)
{
this
.
shortLink
=
shortLink
;
}
public
Date
getCreateTime
()
{
return
createTime
;
}
public
void
setCreateTime
(
Date
createTime
)
{
this
.
createTime
=
createTime
;
}
public
Integer
getSendCount
()
{
return
sendCount
;
}
public
void
setSendCount
(
Integer
sendCount
)
{
this
.
sendCount
=
sendCount
;
}
public
Integer
getClickCount
()
{
return
clickCount
;
}
public
void
setClickCount
(
Integer
clickCount
)
{
this
.
clickCount
=
clickCount
;
}
public
Integer
getClickUserCount
()
{
return
clickUserCount
;
}
public
void
setClickUserCount
(
Integer
clickUserCount
)
{
this
.
clickUserCount
=
clickUserCount
;
}
public
Long
getId
()
{
return
id
;
}
public
void
setId
(
Long
id
)
{
this
.
id
=
id
;
}
@Override
public
String
toString
()
{
return
"LinkRevertRecordDTO{"
+
"id="
+
id
+
", brandId="
+
brandId
+
", brandName='"
+
brandName
+
'\''
+
", link='"
+
link
+
'\''
+
", shortLink='"
+
shortLink
+
'\''
+
", createTime="
+
createTime
+
", sendCount="
+
sendCount
+
", clickCount="
+
clickCount
+
", clickUserCount="
+
clickUserCount
+
'}'
;
}
}
pcloud-service-book/src/main/java/com/pcloud/book/advertising/entity/AdvertisingLinkClick.java
0 → 100644
View file @
f870bda1
package
com
.
pcloud
.
book
.
advertising
.
entity
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.pcloud.common.entity.BaseEntity
;
import
java.util.Date
;
/**
*链接点击记录
*/
public
class
AdvertisingLinkClick
extends
BaseEntity
{
/**
*短链接
*/
private
String
link
;
/**
*用户id
*/
private
Long
userId
;
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
private
Date
createTime
;
public
Long
getUserId
()
{
return
userId
;
}
public
void
setUserId
(
Long
userId
)
{
this
.
userId
=
userId
;
}
public
String
getLink
()
{
return
link
;
}
public
void
setLink
(
String
link
)
{
this
.
link
=
link
==
null
?
null
:
link
.
trim
();
}
public
Date
getCreateTime
()
{
return
createTime
;
}
public
void
setCreateTime
(
Date
createTime
)
{
this
.
createTime
=
createTime
;
}
}
\ No newline at end of file
pcloud-service-book/src/main/java/com/pcloud/book/advertising/entity/AdvertisingLinkRevert.java
0 → 100644
View file @
f870bda1
package
com
.
pcloud
.
book
.
advertising
.
entity
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.pcloud.common.entity.BaseEntity
;
import
java.util.Date
;
/**
*链接转换记录
*/
public
class
AdvertisingLinkRevert
extends
BaseEntity
{
/**
*品牌方id
*/
private
Long
brandId
;
/**
*原链接
*/
private
String
link
;
/**
* 要转换的链接
*/
private
String
revertLink
;
/**
*短链接
*/
private
String
shortLink
;
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
private
Date
createTime
;
private
Long
createUser
;
public
Long
getBrandId
()
{
return
brandId
;
}
public
void
setBrandId
(
Long
brandId
)
{
this
.
brandId
=
brandId
;
}
public
String
getLink
()
{
return
link
;
}
public
void
setLink
(
String
link
)
{
this
.
link
=
link
==
null
?
null
:
link
.
trim
();
}
public
String
getRevertLink
()
{
return
revertLink
;
}
public
void
setRevertLink
(
String
revertLink
)
{
this
.
revertLink
=
revertLink
;
}
public
String
getShortLink
()
{
return
shortLink
;
}
public
void
setShortLink
(
String
shortLink
)
{
this
.
shortLink
=
shortLink
==
null
?
null
:
shortLink
.
trim
();
}
public
Date
getCreateTime
()
{
return
createTime
;
}
public
void
setCreateTime
(
Date
createTime
)
{
this
.
createTime
=
createTime
;
}
public
Long
getCreateUser
()
{
return
createUser
;
}
public
void
setCreateUser
(
Long
createUser
)
{
this
.
createUser
=
createUser
;
}
}
\ No newline at end of file
pcloud-service-book/src/main/java/com/pcloud/book/advertising/entity/AdvertisingLinkSend.java
0 → 100644
View file @
f870bda1
package
com
.
pcloud
.
book
.
advertising
.
entity
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.pcloud.common.entity.BaseEntity
;
import
java.util.Date
;
/**
* 链接发送数据统计
*/
public
class
AdvertisingLinkSend
extends
BaseEntity
{
/**
* 链接id
*/
private
Long
linkId
;
/**
* 发送次数
*/
private
Integer
sendCount
;
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
private
Date
createTime
;
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
private
Date
statisticDate
;
public
Long
getLinkId
()
{
return
linkId
;
}
public
void
setLinkId
(
Long
linkId
)
{
this
.
linkId
=
linkId
;
}
public
Integer
getSendCount
()
{
return
sendCount
;
}
public
void
setSendCount
(
Integer
sendCount
)
{
this
.
sendCount
=
sendCount
;
}
public
Date
getCreateTime
()
{
return
createTime
;
}
public
void
setCreateTime
(
Date
createTime
)
{
this
.
createTime
=
createTime
;
}
public
Date
getStatisticDate
()
{
return
statisticDate
;
}
public
void
setStatisticDate
(
Date
statisticDate
)
{
this
.
statisticDate
=
statisticDate
;
}
}
\ No newline at end of file
pcloud-service-book/src/main/java/com/pcloud/book/advertising/entity/AdvertisingSpace.java
View file @
f870bda1
...
...
@@ -184,6 +184,12 @@ public class AdvertisingSpace extends BaseEntity {
* cp内容id
*/
private
Long
cpaId
;
/**
* 书刊广告跳转类型
*/
private
Integer
bookJumpType
;
@Override
public
Long
getId
()
{
return
id
;
...
...
@@ -494,6 +500,14 @@ public class AdvertisingSpace extends BaseEntity {
this
.
cpaId
=
cpaId
;
}
public
Integer
getBookJumpType
()
{
return
bookJumpType
;
}
public
void
setBookJumpType
(
Integer
bookJumpType
)
{
this
.
bookJumpType
=
bookJumpType
;
}
@Override
public
String
toString
()
{
return
"AdvertisingSpace{"
+
...
...
@@ -535,6 +549,7 @@ public class AdvertisingSpace extends BaseEntity {
", adDetailFileDuration="
+
adDetailFileDuration
+
", advertisingDetailFileList="
+
advertisingDetailFileList
+
", cpaId="
+
cpaId
+
", bookJumpType="
+
bookJumpType
+
'}'
;
}
}
\ No newline at end of file
pcloud-service-book/src/main/java/com/pcloud/book/advertising/enums/BookJumpTypeEnum.java
0 → 100644
View file @
f870bda1
package
com
.
pcloud
.
book
.
advertising
.
enums
;
/**
* 书刊广告跳转类型
*/
public
enum
BookJumpTypeEnum
{
/**
* 跳到链接
*/
LINK
(
0
),
/**
* 展示图片
*/
PIC
(
1
);
public
final
Integer
value
;
BookJumpTypeEnum
(
Integer
value
)
{
this
.
value
=
value
;
}
public
Integer
getValue
()
{
return
value
;
}
}
pcloud-service-book/src/main/java/com/pcloud/book/advertising/facade/LinkRevertFacade.java
0 → 100644
View file @
f870bda1
package
com
.
pcloud
.
book
.
advertising
.
facade
;
import
com.pcloud.book.advertising.biz.LinkRevertBiz
;
import
com.pcloud.book.advertising.dto.LinkRevertRecordDTO
;
import
com.pcloud.book.advertising.entity.AdvertisingLinkClick
;
import
com.pcloud.book.advertising.entity.AdvertisingLinkRevert
;
import
com.pcloud.book.base.exception.BookBizException
;
import
com.pcloud.common.dto.ResponseDto
;
import
com.pcloud.common.page.PageBeanNew
;
import
com.pcloud.common.permission.PermissionException
;
import
com.pcloud.common.utils.SessionUtil
;
import
com.pcloud.common.utils.cookie.Cookie
;
import
com.pcloud.common.utils.string.StringUtil
;
import
com.pcloud.wechatgroup.message.enums.IsSystem
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.CookieValue
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.PostMapping
;
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.RequestParam
;
import
org.springframework.web.bind.annotation.RestController
;
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
;
/**
* @描述:链接转换
* @作者:zhuyajie
* @创建时间:16:57 2019/10/10
* @版本:1.0
*/
@Api
(
description
=
"链接转换外部接口"
)
@RequestMapping
(
value
=
"/linkRevert"
)
@RestController
(
"linkRevertFacade"
)
public
class
LinkRevertFacade
{
@Autowired
private
LinkRevertBiz
linkRevertBiz
;
@ApiOperation
(
value
=
"添加链接转换记录"
,
httpMethod
=
"POST"
)
@PostMapping
(
"addRevertRecord"
)
public
ResponseDto
<
Long
>
addRevertRecord
(
@RequestHeader
(
"token"
)
String
token
,
@RequestBody
@ApiParam
AdvertisingLinkRevert
advertisingLinkRevert
)
throws
PermissionException
{
if
(
null
==
advertisingLinkRevert
)
{
throw
new
BookBizException
(
BookBizException
.
PARAM_IS_NULL
,
"参数为空"
);
}
if
(
null
==
advertisingLinkRevert
.
getBrandId
()
||
StringUtil
.
isEmpty
(
advertisingLinkRevert
.
getLink
()))
{
throw
new
BookBizException
(
BookBizException
.
PARAM_IS_NULL
,
"参数缺失"
);
}
Map
<
String
,
Object
>
map
=
SessionUtil
.
getToken4Redis
(
token
);
String
isSystem
=
(
String
)
map
.
get
(
SessionUtil
.
IS_SYSTEM
);
Long
partyId
=
(
Long
)
map
.
get
(
SessionUtil
.
PARTY_ID
);
if
(
IsSystem
.
NOT_SYSTEM
.
code
.
equals
(
isSystem
))
{
partyId
=
(
Long
)
map
.
get
(
SessionUtil
.
MEMBER_ID
);
}
advertisingLinkRevert
.
setCreateUser
(
partyId
);
Long
id
=
linkRevertBiz
.
addRevertRecord
(
advertisingLinkRevert
);
return
new
ResponseDto
<>(
id
);
}
@ApiOperation
(
value
=
"删除转换记录"
,
httpMethod
=
"GET"
)
@GetMapping
(
"deleteRevertRecordById"
)
public
ResponseDto
<?>
deleteRevertRecordById
(
@RequestHeader
(
"token"
)
String
token
,
@RequestParam
(
"id"
)
Long
id
)
throws
PermissionException
{
SessionUtil
.
getToken4Redis
(
token
);
if
(
null
==
id
)
{
throw
new
BookBizException
(
BookBizException
.
PARAM_IS_NULL
,
"id为空"
);
}
linkRevertBiz
.
deleteRevertRecordById
(
id
);
return
new
ResponseDto
<>();
}
@ApiOperation
(
value
=
"转换记录列表查询"
,
httpMethod
=
"GET"
)
@ApiImplicitParams
({
@ApiImplicitParam
(
name
=
"currentPage"
,
value
=
"当前页"
,
dataType
=
"integer"
,
paramType
=
"query"
),
@ApiImplicitParam
(
name
=
"numPerPage"
,
value
=
"每页数量"
,
dataType
=
"integer"
,
paramType
=
"query"
),
@ApiImplicitParam
(
name
=
"brandId"
,
value
=
"品牌id"
,
dataType
=
"long"
,
required
=
false
,
paramType
=
"query"
)
})
@GetMapping
(
"listPageRevertRecord"
)
public
ResponseDto
<
PageBeanNew
<
LinkRevertRecordDTO
>>
listPageRevertRecord
(
@RequestHeader
(
"token"
)
String
token
,
@RequestParam
(
value
=
"brandId"
,
required
=
false
)
Long
brandId
,
@RequestParam
(
"currentPage"
)
Integer
currentPage
,
@RequestParam
(
"numPerPage"
)
Integer
numPerPage
)
throws
PermissionException
{
SessionUtil
.
getToken4Redis
(
token
);
if
(
currentPage
==
null
||
numPerPage
==
null
||
currentPage
<
0
||
numPerPage
<
0
)
{
throw
BookBizException
.
PAGE_PARAM_DELETION
;
}
PageBeanNew
<
LinkRevertRecordDTO
>
pageBean
=
linkRevertBiz
.
listPageRevertRecord
(
brandId
,
currentPage
,
numPerPage
);
return
new
ResponseDto
<>(
pageBean
);
}
@ApiOperation
(
value
=
"转换记录列表导出"
,
httpMethod
=
"GET"
)
@ApiImplicitParam
(
name
=
"brandId"
,
value
=
"品牌id"
,
dataType
=
"long"
,
required
=
false
,
paramType
=
"query"
)
@GetMapping
(
"exportRevertRecordList"
)
public
ResponseDto
<?>
exportRevertRecordList
(
@RequestHeader
(
"token"
)
String
token
,
@RequestParam
(
value
=
"brandId"
,
required
=
false
)
Long
brandId
)
throws
PermissionException
{
Map
<
String
,
Object
>
map
=
SessionUtil
.
getToken4Redis
(
token
);
String
isSystem
=
(
String
)
map
.
get
(
SessionUtil
.
IS_SYSTEM
);
Long
partyId
=
(
Long
)
map
.
get
(
SessionUtil
.
PARTY_ID
);
if
(
IsSystem
.
NOT_SYSTEM
.
code
.
equals
(
isSystem
))
{
partyId
=
(
Long
)
map
.
get
(
SessionUtil
.
MEMBER_ID
);
}
linkRevertBiz
.
exportRevertRecordList
(
brandId
,
partyId
);
return
new
ResponseDto
<>();
}
@ApiOperation
(
value
=
"添加链接点击记录"
,
httpMethod
=
"POST"
)
@PostMapping
(
"addClickRecord"
)
public
ResponseDto
<?>
addClickRecord
(
@CookieValue
(
"userInfo"
)
String
userInfo
,
@RequestBody
@ApiParam
AdvertisingLinkClick
advertisingLinkClick
)
{
if
(
null
==
advertisingLinkClick
)
{
throw
new
BookBizException
(
BookBizException
.
PARAM_IS_NULL
,
"参数为空"
);
}
if
(
StringUtil
.
isEmpty
(
advertisingLinkClick
.
getLink
()))
{
throw
new
BookBizException
(
BookBizException
.
PARAM_IS_NULL
,
"参数缺失"
);
}
Long
userId
=
Cookie
.
getId
(
userInfo
,
Cookie
.
_WECHAT_USER_ID
);
advertisingLinkClick
.
setUserId
(
userId
);
linkRevertBiz
.
addClickRecord
(
advertisingLinkClick
);
return
new
ResponseDto
<>();
}
@ApiOperation
(
value
=
"根据id查记录"
,
httpMethod
=
"GET"
)
@GetMapping
(
"getById"
)
public
ResponseDto
<
AdvertisingLinkRevert
>
getById
(
@RequestParam
(
"id"
)
Long
id
)
{
if
(
null
==
id
)
{
throw
new
BookBizException
(
BookBizException
.
PARAM_IS_NULL
,
"id为空"
);
}
AdvertisingLinkRevert
revert
=
linkRevertBiz
.
getById
(
id
);
return
new
ResponseDto
<>(
revert
);
}
}
pcloud-service-book/src/main/java/com/pcloud/book/advertising/service/impl/AdvertisingSpaceServiceImpl.java
View file @
f870bda1
...
...
@@ -2,6 +2,7 @@ package com.pcloud.book.advertising.service.impl;
import
com.pcloud.book.advertising.biz.AdvertisingSpaceBiz
;
import
com.pcloud.book.advertising.biz.GroupTagBiz
;
import
com.pcloud.book.advertising.biz.LinkRevertBiz
;
import
com.pcloud.book.advertising.service.AdvertisingSpaceService
;
import
com.pcloud.common.core.aspect.ParamLog
;
import
com.pcloud.common.dto.ResponseDto
;
...
...
@@ -39,6 +40,8 @@ public class AdvertisingSpaceServiceImpl implements AdvertisingSpaceService {
private
AdvertisingSpaceBiz
advertisingSpaceBiz
;
@Autowired
private
GroupTagBiz
groupTagBiz
;
@Autowired
private
LinkRevertBiz
linkRevertBiz
;
/**
* 每日凌晨计算昨日广告位收益
...
...
@@ -47,6 +50,8 @@ public class AdvertisingSpaceServiceImpl implements AdvertisingSpaceService {
@RequestMapping
(
value
=
"calculateAdvertisingIncomeYesterday"
,
method
=
RequestMethod
.
GET
)
public
void
calculateAdvertisingIncomeYesterday
()
throws
BizException
{
advertisingSpaceBiz
.
calculateAdvertisingIncomeYesterday
();
//统计昨日链接发送次数
linkRevertBiz
.
addYesterdaySendStatistic
();
}
@ApiOperation
(
"发送广告计划"
)
...
...
pcloud-service-book/src/main/java/com/pcloud/book/consumer/wechatgroup/WechatGroupConsr.java
View file @
f870bda1
...
...
@@ -13,8 +13,9 @@ import com.pcloud.wechatgroup.group.dto.RobotReplyDTO;
import
com.pcloud.wechatgroup.group.service.GroupMemberService
;
import
com.pcloud.wechatgroup.message.dto.BrandParamDTO
;
import
com.pcloud.wechatgroup.message.dto.GroupChatCountDTO
;
import
com.pcloud.wechatgroup.message.dto.UserChatCountDTO
;
import
com.pcloud.wechatgroup.message.dto.GroupStatistics
;
import
com.pcloud.wechatgroup.message.dto.LinkGroupParamDTO
;
import
com.pcloud.wechatgroup.message.dto.UserChatCountDTO
;
import
com.pcloud.wechatgroup.message.service.MessageService
;
import
com.pcloud.wechatgroup.monitor.service.MonitorService
;
import
com.pcloud.wechatgroup.selfrobot.dto.SelfRobotDTO
;
...
...
@@ -384,4 +385,15 @@ public class WechatGroupConsr {
return
map
;
}
@ParamLog
(
"查询链接发送次数"
)
public
Map
<
String
,
Integer
>
getLinkSendCount
(
List
<
LinkGroupParamDTO
>
paramDTOList
)
{
Map
<
String
,
Integer
>
map
=
new
HashMap
<>();
try
{
map
=
ResponseHandleUtil
.
parseMapResponse
(
messageService
.
getLinkSendCount
(
paramDTOList
),
String
.
class
,
Integer
.
class
);
}
catch
(
Exception
e
)
{
log
.
error
(
"查询链接发送次数.[getLinkSendCount]:"
+
e
.
getMessage
(),
e
);
}
return
map
;
}
}
pcloud-service-book/src/main/resources/mapper/advertising/AdvertisingLinkClickMapper.xml
0 → 100644
View file @
f870bda1
<?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.AdvertisingLinkClickDaoImpl"
>
<resultMap
id=
"BaseResultMap"
type=
"com.pcloud.book.advertising.entity.AdvertisingLinkClick"
>
<id
column=
"id"
property=
"id"
jdbcType=
"BIGINT"
/>
<id
column=
"link"
property=
"link"
jdbcType=
"VARCHAR"
/>
<result
column=
"user_id"
property=
"userId"
jdbcType=
"BIGINT"
/>
<result
column=
"create_time"
property=
"createTime"
jdbcType=
"TIMESTAMP"
/>
</resultMap>
<sql
id=
"Base_Column_List"
>
id, link, user_id, create_time
</sql>
<insert
id=
"insert"
parameterType=
"com.pcloud.book.advertising.entity.AdvertisingLinkClick"
useGeneratedKeys=
"true"
keyProperty=
"id"
>
insert into advertising_link_click (id, link, user_id,
create_time)
values (#{id,jdbcType=BIGINT}, #{link,jdbcType=VARCHAR}, #{userId,jdbcType=BIGINT},
NOW())
</insert>
<select
id=
"getCountByLink"
parameterType=
"string"
resultType=
"com.pcloud.book.advertising.dto.LinkRevertRecordDTO"
>
SELECT
COUNT(1) clickCount,
COUNT(DISTINCT user_id) clickUserCount
FROM advertising_link_click
WHERE link = #{link}
</select>
</mapper>
\ No newline at end of file
pcloud-service-book/src/main/resources/mapper/advertising/AdvertisingLinkRevertMapper.xml
0 → 100644
View file @
f870bda1
<?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.AdvertisingLinkRevertDaoImpl"
>
<resultMap
id=
"BaseResultMap"
type=
"com.pcloud.book.advertising.entity.AdvertisingLinkRevert"
>
<id
column=
"id"
property=
"id"
jdbcType=
"BIGINT"
/>
<id
column=
"brand_id"
property=
"brandId"
jdbcType=
"BIGINT"
/>
<result
column=
"link"
property=
"link"
jdbcType=
"VARCHAR"
/>
<result
column=
"revert_link"
property=
"revertLink"
jdbcType=
"VARCHAR"
/>
<result
column=
"short_link"
property=
"shortLink"
jdbcType=
"VARCHAR"
/>
<result
column=
"create_time"
property=
"createTime"
jdbcType=
"TIMESTAMP"
/>
<result
column=
"create_user"
property=
"createUser"
jdbcType=
"BIGINT"
/>
</resultMap>
<sql
id=
"Base_Column_List"
>
id, brand_id, link, revert_link, short_link, create_time, create_user
</sql>
<insert
id=
"insert"
parameterType=
"com.pcloud.book.advertising.entity.AdvertisingLinkRevert"
useGeneratedKeys=
"true"
keyProperty=
"id"
>
insert into advertising_link_revert (id, brand_id, link, revert_link,
short_link, create_time, create_user
)
values (#{id,jdbcType=BIGINT}, #{brandId,jdbcType=BIGINT}, #{link,jdbcType=VARCHAR}, #{revertLink},
#{shortLink,jdbcType=VARCHAR}, NOW(), #{createUser,jdbcType=BIGINT}
)
</insert>
<delete
id=
"deleteById"
parameterType=
"long"
>
DELETE FROM advertising_link_revert
WHERE id = #{id}
</delete>
<select
id=
"listRevertRecord"
parameterType=
"map"
resultType=
"com.pcloud.book.advertising.dto.LinkRevertRecordDTO"
>
SELECT
id id,
brand_id brandId,
link link,
short_link shortLink,
create_time createTime
FROM
advertising_link_revert
WHERE
1 = 1
<if
test=
"null != brandId"
>
AND brand_id = #{brandId}
</if>
ORDER BY
create_time DESC,
id DESC
</select>
<update
id=
"update"
parameterType=
"com.pcloud.book.advertising.entity.AdvertisingLinkRevert"
>
update advertising_link_revert
<set
>
<if
test=
"link != null"
>
link = #{link,jdbcType=VARCHAR},
</if>
<if
test=
"revertLink != null"
>
revert_link = #{revertLink,jdbcType=VARCHAR},
</if>
<if
test=
"shortLink != null"
>
short_link = #{shortLink,jdbcType=VARCHAR},
</if>
</set>
WHERE id = #{id}
</update>
<select
id=
"getById"
parameterType=
"long"
resultMap=
"BaseResultMap"
>
SELECT
<include
refid=
"Base_Column_List"
/>
FROM advertising_link_revert
WHERE id = #{id}
</select>
<select
id=
"getAll"
resultMap=
"BaseResultMap"
>
SELECT
<include
refid=
"Base_Column_List"
/>
FROM advertising_link_revert
</select>
</mapper>
\ No newline at end of file
pcloud-service-book/src/main/resources/mapper/advertising/AdvertisingLinkSendMapper.xml
0 → 100644
View file @
f870bda1
<?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.AdvertisingLinkSendDaoImpl"
>
<resultMap
id=
"BaseResultMap"
type=
"com.pcloud.book.advertising.entity.AdvertisingLinkSend"
>
<id
column=
"id"
property=
"id"
jdbcType=
"BIGINT"
/>
<result
column=
"link_id"
property=
"linkId"
jdbcType=
"BIGINT"
/>
<result
column=
"send_count"
property=
"sendCount"
jdbcType=
"INTEGER"
/>
<result
column=
"create_time"
property=
"createTime"
jdbcType=
"TIMESTAMP"
/>
<result
column=
"statistic_date"
property=
"statisticDate"
jdbcType=
"DATE"
/>
</resultMap>
<sql
id=
"Base_Column_List"
>
id, link_id, send_count, create_time, statistic_date
</sql>
<insert
id=
"insert"
parameterType=
"com.pcloud.book.advertising.entity.AdvertisingLinkSend"
useGeneratedKeys=
"true"
keyProperty=
"id"
>
insert into advertising_link_send (id, link_id, send_count,
create_time, statistic_date)
values (#{id,jdbcType=BIGINT}, #{linkId,jdbcType=BIGINT}, #{sendCount,jdbcType=INTEGER},
#{createTime,jdbcType=TIMESTAMP}, #{statisticDate,jdbcType=DATE})
</insert>
<insert
id=
"batchInsert"
parameterType=
"com.pcloud.book.advertising.entity.AdvertisingLinkSend"
useGeneratedKeys=
"true"
keyProperty=
"id"
>
insert into advertising_link_send (
link_id,
send_count,
create_time,
statistic_date) values
<foreach
collection=
"list"
item=
"item"
index=
"index"
separator=
","
>
(#{item.linkId,jdbcType=BIGINT},
#{item.sendCount,jdbcType=INTEGER},
#{item.createTime,jdbcType=TIMESTAMP},
#{item.statisticDate,jdbcType=DATE}
)
</foreach>
</insert>
<select
id=
"mapSendCount"
parameterType=
"map"
resultType=
"com.pcloud.book.advertising.dto.LinkRevertRecordDTO"
>
SELECT
link_id id,
SUM(IFNULL(send_count, 0)) sendCount
FROM
advertising_link_send
WHERE
link_id IN
<foreach
collection=
"linkIds"
index=
"index"
item=
"item"
open=
"("
separator=
","
close=
")"
>
#{item}
</foreach>
GROUP BY
link_id
</select>
</mapper>
\ No newline at end of file
pcloud-service-book/src/main/resources/mapper/advertising/AdvertisingSpaceMapper.xml
View file @
f870bda1
...
...
@@ -36,6 +36,7 @@
<result
column=
"ad_detail_file_name"
property=
"adDetailFileName"
jdbcType=
"VARCHAR"
/>
<result
column=
"ad_detail_file_duration"
property=
"adDetailFileDuration"
jdbcType=
"BIGINT"
/>
<result
column=
"cpa_id"
property=
"cpaId"
jdbcType=
"BIGINT"
/>
<result
column=
"book_jump_type"
property=
"bookJumpType"
jdbcType=
"INTEGER"
/>
</resultMap>
<resultMap
id=
"AdvertisingSpaceDTO"
type=
"com.pcloud.book.advertising.dto.AdvertisingSpaceDTO"
>
...
...
@@ -74,6 +75,7 @@
<result
column=
"ad_detail_file_duration"
property=
"adDetailFileDuration"
jdbcType=
"BIGINT"
/>
<result
column=
"settlement_method"
property=
"settlementMethod"
jdbcType=
"VARCHAR"
/>
<result
column=
"cpa_id"
property=
"cpaId"
jdbcType=
"BIGINT"
/>
<result
column=
"book_jump_type"
property=
"bookJumpType"
jdbcType=
"INTEGER"
/>
</resultMap>
<sql
id=
"Base_Column_List"
>
...
...
@@ -82,7 +84,7 @@
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,cpa_id
ad_form_link, ad_detail_file_size, ad_detail_file_name, ad_detail_file_duration,cpa_id
, book_jump_type
</sql>
<select
id=
"getById"
resultMap=
"BaseResultMap"
parameterType=
"Long"
>
...
...
@@ -130,7 +132,8 @@
s.ad_detail_file_size,
s.ad_detail_file_name,
s.ad_detail_file_duration,
s.cpa_id
s.cpa_id,
s.book_jump_type
FROM
advertising_distribution_book b,
advertising_space s
...
...
@@ -177,7 +180,8 @@
s.ad_detail_file_size,
s.ad_detail_file_name,
s.ad_detail_file_duration,
s.cpa_id
s.cpa_id,
s.book_jump_type
FROM
advertising_distribution_book b,
advertising_space s
...
...
@@ -343,7 +347,7 @@
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,
cpa_id
cpa_id
, book_jump_type
</trim>
<trim
prefix=
"values ("
suffix=
")"
suffixOverrides=
","
>
#{adName,jdbcType=VARCHAR},
...
...
@@ -367,7 +371,7 @@
#{adFormMobileCheck,jdbcType=BIT}, #{adFormRemark,jdbcType=VARCHAR}, #{adFormButton,jdbcType=VARCHAR},
#{adFormLink,jdbcType=VARCHAR}, #{adDetailFileSize}, #{adDetailFileName},
#{adDetailFileDuration},
#{cpaId}
#{cpaId}
, #{bookJumpType}
</trim>
</insert>
...
...
@@ -465,6 +469,9 @@
<if
test=
"cpaId != null"
>
cpa_id = #{cpaId},
</if>
<if
test=
"bookJumpType != null"
>
book_jump_type = #{bookJumpType},
</if>
</set>
where id = #{id,jdbcType=INTEGER}
</update>
...
...
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