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
b9a7a1f0
Commit
b9a7a1f0
authored
Jul 31, 2020
by
桂前礼
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat: [none] 群二维码素材更新绑定公众账号
parent
82827cc2
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
22 changed files
with
685 additions
and
76 deletions
+685
-76
BookConstant.java
...main/java/com/pcloud/book/book/constant/BookConstant.java
+5
-0
MaterialMigrateDTO.java
...in/java/com/pcloud/book/group/dto/MaterialMigrateDTO.java
+26
-0
WeixinQrcodeService.java
...va/com/pcloud/book/group/service/WeixinQrcodeService.java
+20
-4
BookGroupBiz.java
...src/main/java/com/pcloud/book/group/biz/BookGroupBiz.java
+4
-2
GroupMaterialAccountBiz.java
...va/com/pcloud/book/group/biz/GroupMaterialAccountBiz.java
+3
-0
GroupQrcodeBiz.java
...c/main/java/com/pcloud/book/group/biz/GroupQrcodeBiz.java
+7
-0
BookGroupBizImpl.java
...java/com/pcloud/book/group/biz/impl/BookGroupBizImpl.java
+57
-6
GroupMaterialAccountBizImpl.java
...loud/book/group/biz/impl/GroupMaterialAccountBizImpl.java
+50
-4
GroupQrcodeBizImpl.java
...va/com/pcloud/book/group/biz/impl/GroupQrcodeBizImpl.java
+0
-0
WeixinQrcodeBizImpl.java
...a/com/pcloud/book/group/biz/impl/WeixinQrcodeBizImpl.java
+0
-41
GroupQrcodeDao.java
...c/main/java/com/pcloud/book/group/dao/GroupQrcodeDao.java
+7
-0
GroupQrcodeDaoImpl.java
...va/com/pcloud/book/group/dao/impl/GroupQrcodeDaoImpl.java
+20
-0
GroupMaterialDTO.java
...main/java/com/pcloud/book/group/dto/GroupMaterialDTO.java
+31
-0
UpdateGroupMaterialDTO.java
...ava/com/pcloud/book/group/dto/UpdateGroupMaterialDTO.java
+25
-0
BizMaterial.java
...c/main/java/com/pcloud/book/group/entity/BizMaterial.java
+49
-0
GroupMaterialAccount.java
...va/com/pcloud/book/group/entity/GroupMaterialAccount.java
+5
-0
BizMaterialMapper.java
.../java/com/pcloud/book/group/mapper/BizMaterialMapper.java
+82
-0
GroupMaterialAccountMapper.java
.../pcloud/book/group/mapper/GroupMaterialAccountMapper.java
+4
-3
WeixinQrcodeServiceImpl.java
...loud/book/group/service/impl/WeixinQrcodeServiceImpl.java
+43
-3
BizMaterialMapper.xml
...ook/src/main/resources/mapper/group/BizMaterialMapper.xml
+174
-0
GroupMaterialAccountMapper.xml
...ain/resources/mapper/group/GroupMaterialAccountMapper.xml
+33
-13
GroupQrcode.Mapper.xml
...ok/src/main/resources/mapper/group/GroupQrcode.Mapper.xml
+40
-0
No files found.
pcloud-facade-book/src/main/java/com/pcloud/book/book/constant/BookConstant.java
View file @
b9a7a1f0
...
...
@@ -20,6 +20,11 @@ import java.util.Random;
public
class
BookConstant
{
/**
* 更新群二维码时是否同步更新群二维码素材 - 缓存开关
*/
public
static
final
String
BOOK_UPDATE_QRCODE_MATERIAL_SWITCH
=
CacheConstant
.
BOOK
+
"BOOK_UPDATE_QRCODE_MATERIAL_SWITCH:"
;
/**
* 书名分词群标签缓存
*/
public
static
final
String
BOOK_NAME_TAGS_CACHE
=
CacheConstant
.
BOOK
+
"BOOK_NAME_TAGS_CACHE:"
;
...
...
pcloud-facade-book/src/main/java/com/pcloud/book/group/dto/MaterialMigrateDTO.java
0 → 100644
View file @
b9a7a1f0
package
com
.
pcloud
.
book
.
group
.
dto
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
java.util.List
;
/**
* 群素材迁移DTO
*
* @author guiq
* @version 1.0
* @since 2020年8月2日
*/
@Data
@ApiModel
(
"群素材迁移DTO"
)
public
class
MaterialMigrateDTO
{
@ApiModelProperty
(
"迁移到的新公众号"
)
private
Long
accountId
;
@ApiModelProperty
(
"要迁移的群"
)
private
List
<
String
>
groups
;
}
pcloud-facade-book/src/main/java/com/pcloud/book/group/service/WeixinQrcodeService.java
View file @
b9a7a1f0
...
...
@@ -2,6 +2,7 @@ package com.pcloud.book.group.service;
import
com.pcloud.book.group.dto.BookWxQrcodeDTO
;
import
com.pcloud.book.group.dto.GroupQrcodeInfo4Advertising
;
import
com.pcloud.book.group.dto.MaterialMigrateDTO
;
import
com.pcloud.book.group.dto.SearchDto
;
import
com.pcloud.book.group.dto.SyncWeixinGroupIdDTO
;
import
com.pcloud.book.group.dto.UpdateQrDTO
;
...
...
@@ -9,7 +10,8 @@ import com.pcloud.book.group.dto.WeixinQrcodeCountDTO;
import
com.pcloud.book.group.dto.WeixinQrcodeDTO
;
import
com.pcloud.common.dto.ResponseDto
;
import
com.pcloud.common.exceptions.BizException
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
org.springframework.cloud.netflix.feign.FeignClient
;
import
org.springframework.http.ResponseEntity
;
import
org.springframework.web.bind.annotation.GetMapping
;
...
...
@@ -22,9 +24,6 @@ import org.springframework.web.bind.annotation.RequestParam;
import
java.util.List
;
import
java.util.Map
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
/**
* @author lily
* @date 2019/4/19 15:57
...
...
@@ -116,4 +115,21 @@ public interface WeixinQrcodeService {
@ApiOperation
(
"安卓Hook拉取待更新群二维码"
)
@RequestMapping
(
value
=
"/listQrCode4Android"
,
method
=
RequestMethod
.
GET
)
ResponseEntity
<
ResponseDto
<
List
<
UpdateQrDTO
>>>
listQrCode4Android
(
@RequestParam
(
"generation"
)
Integer
generation
,
@RequestParam
(
"num"
)
Integer
num
);
@ApiOperation
(
value
=
"更新微信群素材"
,
httpMethod
=
"POST"
)
@RequestMapping
(
value
=
"/updateGroupMaterial"
,
method
=
RequestMethod
.
POST
)
ResponseEntity
<
ResponseDto
<
Integer
>>
updateGroupMaterial
(
@RequestBody
List
<
String
>
groups
);
@ApiOperation
(
value
=
"迁移群素材到新的公众号 - 谨慎使用"
,
httpMethod
=
"POST"
)
@RequestMapping
(
value
=
"/migrateMaterial"
,
method
=
RequestMethod
.
POST
)
ResponseEntity
<
ResponseDto
<
List
<
String
>>>
migrateMaterial
(
@RequestBody
MaterialMigrateDTO
migrateDTO
);
@ApiOperation
(
value
=
"旧数据处理 - 同步现有素材到新表[执行此方法之前,需要先关闭直接入群]"
)
@RequestMapping
(
value
=
"syncGroupMaterial"
,
method
=
RequestMethod
.
POST
)
void
syncGroupMaterial
(
@RequestBody
Map
<
String
,
Long
>
accountMap
);
@ApiOperation
(
value
=
"新增更新群的公众号"
,
httpMethod
=
"GET"
)
@RequestMapping
(
value
=
"/addAccount4Material"
,
method
=
RequestMethod
.
GET
)
void
addAccount4Material
(
@RequestParam
(
"accountId"
)
Long
accountId
,
@RequestParam
(
"useType"
)
Integer
useType
);
}
pcloud-service-book/src/main/java/com/pcloud/book/group/biz/BookGroupBiz.java
View file @
b9a7a1f0
...
...
@@ -4,8 +4,8 @@ import com.pcloud.book.book.dto.BookDto;
import
com.pcloud.book.book.entity.Book
;
import
com.pcloud.book.group.dto.AgentStatisticsInfoDTO
;
import
com.pcloud.book.group.dto.AltAndCountDTO
;
import
com.pcloud.book.group.dto.BookAppletSceneDTO
;
import
com.pcloud.book.group.dto.AppStatisticsDTO
;
import
com.pcloud.book.group.dto.BookAppletSceneDTO
;
import
com.pcloud.book.group.dto.BookGroupClassifyDTO
;
import
com.pcloud.book.group.dto.BookGroupCountDTO
;
import
com.pcloud.book.group.dto.BookGroupDTO
;
...
...
@@ -21,6 +21,7 @@ import com.pcloud.book.group.dto.CountAndTimeDTO;
import
com.pcloud.book.group.dto.ErpBookGroupDTO
;
import
com.pcloud.book.group.dto.ErpGroupQrcodeDTO
;
import
com.pcloud.book.group.dto.GroupCipherDTO
;
import
com.pcloud.book.group.dto.GroupQrcodeDTO
;
import
com.pcloud.book.group.dto.GroupStoreMyPayDto
;
import
com.pcloud.book.group.dto.GroupUseDTO
;
import
com.pcloud.book.group.dto.JoinGroupCipherDTO
;
...
...
@@ -61,7 +62,6 @@ import com.pcloud.common.exceptions.BizException;
import
com.pcloud.common.page.PageBean
;
import
com.pcloud.common.page.PageBeanNew
;
import
com.pcloud.common.page.PageParam
;
import
org.springframework.web.multipart.MultipartFile
;
import
java.util.List
;
...
...
@@ -921,4 +921,6 @@ public interface BookGroupBiz {
String
getGroupNewsMaterialById
(
Long
bookGroupQrcodeId
,
Long
classifyId
,
Integer
useType
,
Long
groupActivityId
);
String
updateMediaId4Activity
(
String
url
,
PcloudGroupActivity
pcloudGroupActivity
);
List
<
GroupQrcodeDTO
>
getMigrateGroup
(
List
<
String
>
groups
);
}
pcloud-service-book/src/main/java/com/pcloud/book/group/biz/GroupMaterialAccountBiz.java
View file @
b9a7a1f0
...
...
@@ -15,4 +15,7 @@ public interface GroupMaterialAccountBiz {
*/
GroupMaterialAccount
getActiveAccount
(
Integer
value
);
GroupMaterialAccount
getByAccountId
(
Long
accountId
);
void
addAccount4Material
(
Long
accountId
,
Integer
useType
);
}
pcloud-service-book/src/main/java/com/pcloud/book/group/biz/GroupQrcodeBiz.java
View file @
b9a7a1f0
...
...
@@ -5,6 +5,7 @@ import com.pcloud.book.group.dto.GroupAndUserNumberDTO;
import
com.pcloud.book.group.dto.GroupQrcodeInfo4Advertising
;
import
com.pcloud.book.group.dto.GroupQrcodeInfoDTO
;
import
com.pcloud.book.group.dto.GroupQrcodeServerDTO
;
import
com.pcloud.book.group.dto.MaterialMigrateDTO
;
import
com.pcloud.book.group.dto.WeixinQrcodeDTO
;
import
com.pcloud.book.group.entity.GroupQrcode
;
import
com.pcloud.book.group.vo.BookGroupManagerVO
;
...
...
@@ -251,4 +252,10 @@ public interface GroupQrcodeBiz {
* @return
*/
PageBeanNew
<
AppletGroupManageDTO
>
getLocalGroup
(
Long
wechatUserId
,
Integer
numPerPage
,
Integer
currentPage
);
Integer
updateGroupMaterial
(
List
<
String
>
groups
);
List
<
String
>
migrateMaterial
(
MaterialMigrateDTO
migrateDTO
);
void
syncGroupMaterial
(
Map
<
String
,
Long
>
accountMap
);
}
pcloud-service-book/src/main/java/com/pcloud/book/group/biz/impl/BookGroupBizImpl.java
View file @
b9a7a1f0
...
...
@@ -92,6 +92,7 @@ import com.pcloud.book.group.dto.DayCountDTO;
import
com.pcloud.book.group.dto.ErpBookGroupDTO
;
import
com.pcloud.book.group.dto.ErpGroupQrcodeDTO
;
import
com.pcloud.book.group.dto.GroupCipherDTO
;
import
com.pcloud.book.group.dto.GroupQrcodeDTO
;
import
com.pcloud.book.group.dto.GroupStoreMyPayDto
;
import
com.pcloud.book.group.dto.GroupUseDTO
;
import
com.pcloud.book.group.dto.JoinGroupCipherDTO
;
...
...
@@ -111,6 +112,7 @@ import com.pcloud.book.group.dto.TopAgentBookGroupDTO;
import
com.pcloud.book.group.dto.UserBookBaseInfoDTO
;
import
com.pcloud.book.group.dto.UserSelectParamDTO
;
import
com.pcloud.book.group.dto.WechatMessageDTO
;
import
com.pcloud.book.group.entity.BizMaterial
;
import
com.pcloud.book.group.entity.BookAppletScene
;
import
com.pcloud.book.group.entity.BookGroup
;
import
com.pcloud.book.group.entity.BookGroupAgentRecord
;
...
...
@@ -132,7 +134,7 @@ import com.pcloud.book.group.enums.CipherTypeEnum;
import
com.pcloud.book.group.enums.JoinGroupTypeEnum
;
import
com.pcloud.book.group.enums.LargeTempletEnum
;
import
com.pcloud.book.group.enums.UseTypeEnum
;
import
com.pcloud.book.group.mapper.
GroupMaterialAccount
Mapper
;
import
com.pcloud.book.group.mapper.
BizMaterial
Mapper
;
import
com.pcloud.book.group.set.GroupSet
;
import
com.pcloud.book.group.tools.BookExcelReader
;
import
com.pcloud.book.group.tools.SendWeixinRequestTools
;
...
...
@@ -424,7 +426,7 @@ public class BookGroupBizImpl implements BookGroupBiz {
@Autowired
private
GroupMaterialAccountBiz
groupMaterialAccountBiz
;
@Autowired
private
GroupMaterialAccountMapper
groupMaterialAccount
Mapper
;
private
BizMaterialMapper
bizMaterial
Mapper
;
@Autowired
private
PcloudGroupActivityBiz
pcloudGroupActivityBiz
;
...
...
@@ -5299,12 +5301,26 @@ public class BookGroupBizImpl implements BookGroupBiz {
}
bookGroupQrcodeId
=
groupQrcodeInfo
.
getId
();
}
if
(
Objects
.
isNull
(
bookGroupQrcodeId
)){
throw
new
BookBizException
(
BookBizException
.
PARAM_IS_NULL
,
"未获取到图文素材链接"
);
}
// 直接获取 素材地址 如果获取到直接返回
String
materialUrl
=
bizMaterialMapper
.
selectMaterialUrl4Biz
(
bookGroupQrcodeId
,
UseTypeEnum
.
NORMAL_GROUP
.
value
);
if
(
StrUtil
.
isNotBlank
(
materialUrl
)){
return
materialUrl
;
}
// 获取不到则新增
GroupQrcodeBaseInfoVO
groupInfo
=
groupQrcodeDao
.
getBaseById
(
bookGroupQrcodeId
);
GroupMaterialAccount
activeAccount
=
groupMaterialAccountBiz
.
getActiveAccount
(
UseTypeEnum
.
NORMAL_GROUP
.
value
);
mediaId
=
updateMediaId
(
groupInfo
,
activeAccount
,
bookGroupQrcodeId
);
if
(
StrUtil
.
isBlank
(
mediaId
))
{
materialUrl
=
uploadBizMaterial4Group
(
groupInfo
,
activeAccount
);
if
(
StrUtil
.
isBlank
(
materialUrl
))
{
throw
new
BookBizException
(
BookBizException
.
PARAM_IS_NULL
,
"未获取到图文素材链接"
);
}
return
materialUrl
;
}
else
if
(
UseTypeEnum
.
THIRD_GROUP
.
value
.
equals
(
useType
))
{
PcloudGroupActivity
pcloudGroupActivity
=
pcloudGroupActivityBiz
.
getById
(
groupActivityId
);
if
(
null
==
pcloudGroupActivity
||
null
==
pcloudGroupActivity
.
getGroupType
()
||
StringUtil
.
isEmpty
(
pcloudGroupActivity
.
getGroupExtLink
()))
{
...
...
@@ -5323,6 +5339,36 @@ public class BookGroupBizImpl implements BookGroupBiz {
return
ResponseHandleUtil
.
parseResponse
(
materialService
.
getGroupNewsMaterialByMediaId
(
mediaId
),
String
.
class
);
}
private
String
uploadBizMaterial4Group
(
GroupQrcodeBaseInfoVO
groupInfo
,
GroupMaterialAccount
activeAccount
)
{
if
(
Objects
.
nonNull
(
groupInfo
)
&&
Objects
.
nonNull
(
activeAccount
)
&&
Objects
.
nonNull
(
activeAccount
.
getAccountId
()))
{
GroupMaterialAccount
account
=
groupMaterialAccountBiz
.
getByAccountId
(
activeAccount
.
getAccountId
());
GroupNewsMaterialAddDTO
groupNewsMaterialAddDTO
=
new
GroupNewsMaterialAddDTO
();
groupNewsMaterialAddDTO
.
setAccountId
(
account
.
getAccountId
());
groupNewsMaterialAddDTO
.
setGroupHeadImg
(
account
.
getHeadMediaId
());
groupNewsMaterialAddDTO
.
setCoverMediaId
(
account
.
getCoverMediaId
());
groupNewsMaterialAddDTO
.
setGroupName
(
groupInfo
.
getGroupName
());
groupNewsMaterialAddDTO
.
setQrcodeUrl
(
groupInfo
.
getQrcodeUrl
());
try
{
String
mediaId
=
ResponseHandleUtil
.
parseResponse
(
materialService
.
getGroupNewsMaterial
(
groupNewsMaterialAddDTO
),
String
.
class
);
if
(
StrUtil
.
isNotBlank
(
mediaId
))
{
BizMaterial
bizMaterial
=
new
BizMaterial
();
bizMaterial
.
setAccountId
(
Math
.
toIntExact
(
account
.
getAccountId
()));
bizMaterial
.
setBizId
(
Math
.
toIntExact
(
groupInfo
.
getGroupQrcodeId
()));
bizMaterial
.
setBizType
(
UseTypeEnum
.
NORMAL_GROUP
.
value
);
bizMaterial
.
setCreateTime
(
new
Date
());
bizMaterial
.
setMediaId
(
mediaId
);
String
materialUrl
=
ResponseHandleUtil
.
parseResponse
(
materialService
.
getGroupNewsMaterialByMediaId
(
mediaId
),
String
.
class
);
bizMaterial
.
setMaterialUrl
(
materialUrl
);
bizMaterialMapper
.
insertOrUpdate
(
bizMaterial
);
return
materialUrl
;
}
}
catch
(
Exception
e
)
{
LOGGER
.
error
(
"[BookGroupBizImpl.uploadBizMaterial4Group]] 上传素材失败! groupInfo:{} activeAccount:{}"
,
groupInfo
,
activeAccount
);
}
}
return
null
;
}
@Override
public
String
updateMediaId4Activity
(
String
url
,
PcloudGroupActivity
pcloudGroupActivity
)
{
GroupMaterialAccount
account
=
groupMaterialAccountBiz
.
getActiveAccount
(
UseTypeEnum
.
THIRD_GROUP
.
value
);
...
...
@@ -5345,10 +5391,15 @@ public class BookGroupBizImpl implements BookGroupBiz {
return
mediaId
;
}
@Override
public
List
<
GroupQrcodeDTO
>
getMigrateGroup
(
List
<
String
>
groups
)
{
return
groupQrcodeDao
.
getMigrateGroup
(
groups
);
}
private
String
updateMediaId
(
GroupQrcodeBaseInfoVO
groupInfo
,
GroupMaterialAccount
account
,
Long
bookGroupQrcodeId
)
{
if
(
groupInfo
!=
null
&&
account
!=
null
)
{
if
(
groupInfo
!=
null
)
{
String
mediaId
=
groupQrcodeDao
.
getMediaId
(
bookGroupQrcodeId
);
if
(
StrUtil
.
isBlank
(
mediaId
))
{
if
(
StrUtil
.
isBlank
(
mediaId
)
&&
account
!=
null
)
{
GroupNewsMaterialAddDTO
groupNewsMaterialAddDTO
=
new
GroupNewsMaterialAddDTO
();
groupNewsMaterialAddDTO
.
setAccountId
(
account
.
getAccountId
());
groupNewsMaterialAddDTO
.
setCoverMediaId
(
account
.
getCoverMediaId
());
...
...
pcloud-service-book/src/main/java/com/pcloud/book/group/biz/impl/GroupMaterialAccountBizImpl.java
View file @
b9a7a1f0
package
com
.
pcloud
.
book
.
group
.
biz
.
impl
;
import
cn.hutool.core.collection.CollUtil
;
import
cn.hutool.core.date.DateUtil
;
import
cn.hutool.core.util.StrUtil
;
import
com.pcloud.book.group.biz.GroupMaterialAccountBiz
;
import
com.pcloud.book.group.entity.GroupMaterialAccount
;
...
...
@@ -45,12 +44,59 @@ public class GroupMaterialAccountBizImpl implements GroupMaterialAccountBiz {
@Override
public
GroupMaterialAccount
getActiveAccount
(
Integer
useType
)
{
// 查询未达到限制或者已达到限制但已经超过24小时的
Date
yesterday
=
DateUtil
.
offsetDay
(
new
Date
(),
-
1
).
toJdkDate
();
List
<
GroupMaterialAccount
>
activeAccount
=
groupMaterialAccountMapper
.
getActiveAccount
(
yesterday
,
useType
);
// 查询未达到限制或者已达到限制但已经到新的一天的
List
<
GroupMaterialAccount
>
activeAccount
=
groupMaterialAccountMapper
.
getActiveAccount
(
useType
);
return
checkLimit
(
activeAccount
);
}
@Override
public
GroupMaterialAccount
getByAccountId
(
Long
accountId
)
{
GroupMaterialAccount
account
=
groupMaterialAccountMapper
.
getByAccountId
(
accountId
);
if
(
Objects
.
nonNull
(
account
))
{
// 补充群头像 - 图文消息内的图片
if
(
StrUtil
.
isBlank
(
account
.
getCoverMediaId
())
||
StrUtil
.
isBlank
(
account
.
getHeadMediaId
()))
{
try
{
if
(
StrUtil
.
isBlank
(
account
.
getHeadMediaId
())){
String
url
=
ResponseHandleUtil
.
parseResponse
(
materialService
.
uploadImg
(
account
.
getAccountId
(),
GROUP_HEAD_IMAGE
),
String
.
class
);
account
.
setHeadMediaId
(
url
);
}
if
(
StrUtil
.
isBlank
(
account
.
getCoverMediaId
())){
String
mediaId
=
ResponseHandleUtil
.
parseResponse
(
materialService
.
addImgMaterial
(
account
.
getAccountId
(),
COVER_IMAGE
),
String
.
class
);
account
.
setCoverMediaId
(
mediaId
);
}
}
catch
(
BizException
e
)
{
// 接口调用超过限制,更新状态为达到限制
if
(
e
.
getMsg
()
!=
null
&&
e
.
getMsg
().
contains
(
"接口调用超过限制"
)
&&
account
.
getStatus
()
==
1
)
{
account
.
setStatus
(
0
);
account
.
setUpdateTime
(
new
Date
());
groupMaterialAccountMapper
.
update
(
account
);
}
return
null
;
}
}
// 更新状态为可用
if
(
account
.
getStatus
()
==
0
||
account
.
getUpdateTime
()==
null
)
{
account
.
setStatus
(
1
);
account
.
setUpdateTime
(
new
Date
());
groupMaterialAccountMapper
.
update
(
account
);
}
return
account
;
}
return
null
;
}
@Override
public
void
addAccount4Material
(
Long
accountId
,
Integer
useType
)
{
if
(
Objects
.
nonNull
(
accountId
)
&&
Objects
.
nonNull
(
useType
))
{
GroupMaterialAccount
account
=
new
GroupMaterialAccount
();
account
.
setAccountId
(
accountId
);
account
.
setCreateTime
(
new
Date
());
account
.
setStatus
(
1
);
account
.
setUseType
(
useType
);
groupMaterialAccountMapper
.
insert
(
account
);
}
}
/**
* 筛选一个可用的公众号
*/
...
...
pcloud-service-book/src/main/java/com/pcloud/book/group/biz/impl/GroupQrcodeBizImpl.java
View file @
b9a7a1f0
This diff is collapsed.
Click to expand it.
pcloud-service-book/src/main/java/com/pcloud/book/group/biz/impl/WeixinQrcodeBizImpl.java
View file @
b9a7a1f0
...
...
@@ -15,13 +15,10 @@ import com.pcloud.book.group.dto.SyncWeixinGroupIdRequestDTO;
import
com.pcloud.book.group.dto.UpdateQrDTO
;
import
com.pcloud.book.group.dto.WeixinQrcodeCountDTO
;
import
com.pcloud.book.group.dto.WeixinQrcodeDTO
;
import
com.pcloud.book.group.entity.GroupMaterialAccount
;
import
com.pcloud.book.group.entity.GroupQrcode
;
import
com.pcloud.book.group.entity.WeixinQrcode
;
import
com.pcloud.book.group.entity.WeixinQrcodeGeneration
;
import
com.pcloud.book.group.enums.JoinGroupTypeEnum
;
import
com.pcloud.book.group.enums.UpdateStatusEnum
;
import
com.pcloud.book.group.enums.UseTypeEnum
;
import
com.pcloud.book.group.mapper.GroupMaterialAccountMapper
;
import
com.pcloud.book.group.tools.Kit
;
import
com.pcloud.book.group.tools.QrcodeTools
;
...
...
@@ -32,13 +29,10 @@ import com.pcloud.book.util.common.ThreadPoolUtils;
import
com.pcloud.common.core.aspect.ParamLog
;
import
com.pcloud.common.core.biz.MessageBiz
;
import
com.pcloud.common.core.dto.SendEmailDto
;
import
com.pcloud.common.exceptions.BizException
;
import
com.pcloud.common.utils.ListUtils
;
import
com.pcloud.common.utils.QrcodeUtils
;
import
com.pcloud.common.utils.ResponseHandleUtil
;
import
com.pcloud.common.utils.cache.redis.JedisClusterUtils
;
import
com.pcloud.common.utils.string.StringUtil
;
import
com.pcloud.facade.wechat.material.dto.GroupNewsMaterialAddDTO
;
import
com.pcloud.facade.wechat.material.service.MaterialService
;
import
com.pcloud.wechatgroup.group.dto.GroupRobotDTO
;
import
com.sdk.wxgroup.AddToGroupVO
;
...
...
@@ -56,7 +50,6 @@ import org.springframework.transaction.annotation.Transactional;
import
java.util.ArrayList
;
import
java.util.Arrays
;
import
java.util.Collections
;
import
java.util.Date
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
...
...
@@ -211,40 +204,6 @@ public class WeixinQrcodeBizImpl implements WeixinQrcodeBiz {
com
.
pcloud
.
promotion
.
fission
.
dto
.
UpdateQrDTO
updateQr
=
new
com
.
pcloud
.
promotion
.
fission
.
dto
.
UpdateQrDTO
();
BeanUtils
.
copyProperties
(
updateQrDTO
,
updateQr
);
promotionConsr
.
updateQrUrl
(
updateQr
);
// 更新群的同时需要更新永久素材
GroupMaterialAccount
activeAccount
=
groupMaterialAccountBiz
.
getActiveAccount
(
UseTypeEnum
.
NORMAL_GROUP
.
value
);
if
(
Objects
.
nonNull
(
activeAccount
))
{
updateMediaId
(
updateQrDTO
,
activeAccount
);
}
}
}
private
void
updateMediaId
(
UpdateQrDTO
updateQrDTO
,
GroupMaterialAccount
activeAccount
)
{
WeixinQrcode
qrcode
=
weixinQrcodeDao
.
getById
(
updateQrDTO
.
getId
());
// 未使用的群暂时不做处理
GroupQrcode
baseById
=
groupQrcodeDao
.
getByWxGroupId
(
qrcode
.
getWeixinGroupId
());
if
(
baseById
!=
null
&&
baseById
.
getId
()
!=
null
)
{
String
mediaId
=
groupQrcodeDao
.
getMediaId
(
baseById
.
getId
());
GroupNewsMaterialAddDTO
groupNewsMaterialAddDTO
=
new
GroupNewsMaterialAddDTO
();
groupNewsMaterialAddDTO
.
setAccountId
(
activeAccount
.
getAccountId
());
groupNewsMaterialAddDTO
.
setGroupHeadImg
(
activeAccount
.
getHeadMediaId
());
groupNewsMaterialAddDTO
.
setCoverMediaId
(
activeAccount
.
getCoverMediaId
());
groupNewsMaterialAddDTO
.
setGroupName
(
baseById
.
getGroupName
());
groupNewsMaterialAddDTO
.
setQrcodeUrl
(
updateQrDTO
.
getUrl
());
groupNewsMaterialAddDTO
.
setMediaId
(
mediaId
);
try
{
mediaId
=
ResponseHandleUtil
.
parseResponse
(
materialService
.
getGroupNewsMaterial
(
groupNewsMaterialAddDTO
),
String
.
class
);
// 增加素材更新时间字段,方便查询更新失败的群信息
groupQrcodeDao
.
updateMediaId
(
baseById
.
getId
(),
mediaId
,
new
Date
());
}
catch
(
BizException
e
)
{
if
(
e
.
getMsg
()!=
null
&&
e
.
getMsg
().
contains
(
"接口调用超过限制"
)&&
activeAccount
.
getStatus
()
==
1
)
{
activeAccount
.
setStatus
(
0
);
activeAccount
.
setUpdateTime
(
new
Date
());
groupMaterialAccountMapper
.
update
(
activeAccount
);
}
}
catch
(
Exception
e
)
{
LOGGER
.
error
(
"更新永久图文素材失败!"
,
e
);
}
}
}
...
...
pcloud-service-book/src/main/java/com/pcloud/book/group/dao/GroupQrcodeDao.java
View file @
b9a7a1f0
...
...
@@ -5,6 +5,7 @@ import com.pcloud.book.advertising.dto.WeixinClassifyInfoDTO;
import
com.pcloud.book.es.entity.ESBookGroupQrcode
;
import
com.pcloud.book.group.dto.ChangeGroupNameDTO
;
import
com.pcloud.book.group.dto.GroupAndUserNumberDTO
;
import
com.pcloud.book.group.dto.GroupMaterialDTO
;
import
com.pcloud.book.group.dto.GroupQrcodeDTO
;
import
com.pcloud.book.group.dto.GroupQrcodeFoAdDTO
;
import
com.pcloud.book.group.dto.GroupQrcodeInfo4Advertising
;
...
...
@@ -336,4 +337,10 @@ public interface GroupQrcodeDao extends BaseDao<GroupQrcode> {
String
getMediaId
(
Long
id
);
void
updateMediaId
(
Long
id
,
String
mediaId
,
Date
date
);
List
<
GroupQrcodeDTO
>
getMigrateGroup
(
List
<
String
>
groups
);
List
<
GroupMaterialDTO
>
listGroupMaterials
();
void
removeMediaIdByIds
(
List
<
Long
>
ids
);
}
pcloud-service-book/src/main/java/com/pcloud/book/group/dao/impl/GroupQrcodeDaoImpl.java
View file @
b9a7a1f0
...
...
@@ -9,6 +9,7 @@ import com.pcloud.book.es.entity.ESBookGroupQrcode;
import
com.pcloud.book.group.dao.GroupQrcodeDao
;
import
com.pcloud.book.group.dto.ChangeGroupNameDTO
;
import
com.pcloud.book.group.dto.GroupAndUserNumberDTO
;
import
com.pcloud.book.group.dto.GroupMaterialDTO
;
import
com.pcloud.book.group.dto.GroupQrcodeDTO
;
import
com.pcloud.book.group.dto.GroupQrcodeFoAdDTO
;
import
com.pcloud.book.group.dto.GroupQrcodeInfo4Advertising
;
...
...
@@ -355,4 +356,23 @@ public class GroupQrcodeDaoImpl extends BaseDaoImpl<GroupQrcode> implements Grou
getSqlSession
().
update
(
getStatement
(
"updateMediaId"
),
map
);
}
@Override
public
List
<
GroupQrcodeDTO
>
getMigrateGroup
(
List
<
String
>
groups
)
{
HashMap
<
String
,
Object
>
map
=
CollUtil
.
newHashMap
(
1
);
map
.
put
(
"list"
,
groups
);
return
getSessionTemplate
().
selectList
(
getStatement
(
"getMigrateGroup"
),
map
);
}
@Override
public
List
<
GroupMaterialDTO
>
listGroupMaterials
()
{
return
getSessionTemplate
().
selectList
(
getStatement
(
"listGroupMaterials"
));
}
@Override
public
void
removeMediaIdByIds
(
List
<
Long
>
ids
)
{
HashMap
<
String
,
Object
>
map
=
CollUtil
.
newHashMap
(
1
);
map
.
put
(
"list"
,
ids
);
getSessionTemplate
().
delete
(
getStatement
(
"removeMediaIdByIds"
),
map
);
}
}
pcloud-service-book/src/main/java/com/pcloud/book/group/dto/GroupMaterialDTO.java
0 → 100644
View file @
b9a7a1f0
package
com
.
pcloud
.
book
.
group
.
dto
;
import
lombok.Data
;
import
java.util.Date
;
/**
* 群二维码永久素材DTO
* @author guiq
* @since 2020年8月3日
* @version 1.0
*/
@Data
public
class
GroupMaterialDTO
{
/**
* book_group_qrcode.id
*/
private
Long
id
;
private
String
groupName
;
private
String
qrcodeUrl
;
private
String
mediaId
;
private
String
wxGroupId
;
private
Date
updateTime
;
}
pcloud-service-book/src/main/java/com/pcloud/book/group/dto/UpdateGroupMaterialDTO.java
0 → 100644
View file @
b9a7a1f0
package
com
.
pcloud
.
book
.
group
.
dto
;
import
lombok.Data
;
@Data
public
class
UpdateGroupMaterialDTO
{
/**
* book_group_qrcode id
*/
private
Long
id
;
private
Long
bookGroupQrcodeId
;
private
Long
wxGroupId
;
private
String
groupName
;
private
String
qrcodeUrl
;
private
String
mediaId
;
private
Integer
accountId
;
}
pcloud-service-book/src/main/java/com/pcloud/book/group/entity/BizMaterial.java
0 → 100644
View file @
b9a7a1f0
package
com
.
pcloud
.
book
.
group
.
entity
;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.util.Date
;
/**
* 业务素材与微信素材对照表(BizMaterial)实体类
*
* @author guiq
* @since 2020-07-31 16:34:30
*/
@Data
public
class
BizMaterial
implements
Serializable
{
private
static
final
long
serialVersionUID
=
-
99446150426970439L
;
private
Long
id
;
/**
* 素材media_id
*/
private
String
mediaId
;
/**
* 素材地址
*/
private
String
materialUrl
;
/**
* 公众号ID
*/
private
Integer
accountId
;
/**
* 业务素材类型 0:群二维码永久图文素材 1:三方群永久图文素材
*/
private
Integer
bizType
;
/**
* 业务素材ID
*/
private
Integer
bizId
;
/**
* 创建时间
*/
private
Date
createTime
;
/**
* 更新时间
*/
private
Date
updateTime
;
}
\ No newline at end of file
pcloud-service-book/src/main/java/com/pcloud/book/group/entity/GroupMaterialAccount.java
View file @
b9a7a1f0
...
...
@@ -42,5 +42,9 @@ public class GroupMaterialAccount implements Serializable {
* 更新时间
*/
private
Date
updateTime
;
/**
* 0 普通社群 1第三方社群
*/
private
Integer
useType
;
}
\ No newline at end of file
pcloud-service-book/src/main/java/com/pcloud/book/group/mapper/BizMaterialMapper.java
0 → 100644
View file @
b9a7a1f0
package
com
.
pcloud
.
book
.
group
.
mapper
;
import
com.pcloud.book.group.dto.UpdateGroupMaterialDTO
;
import
com.pcloud.book.group.entity.BizMaterial
;
import
org.apache.ibatis.annotations.Mapper
;
import
org.apache.ibatis.annotations.Param
;
import
org.springframework.stereotype.Component
;
import
java.util.List
;
/**
* 业务素材与微信素材对照表(BizMaterial)表数据库访问层
*
* @author makejava
* @since 2020-07-31 16:34:30
*/
@Mapper
@Component
public
interface
BizMaterialMapper
{
/**
* 通过ID查询单条数据
*
* @param id 主键
* @return 实例对象
*/
BizMaterial
queryById
(
Long
id
);
/**
* 查询指定行数据
*
* @param offset 查询起始位置
* @param limit 查询条数
* @return 对象列表
*/
List
<
BizMaterial
>
queryAllByLimit
(
@Param
(
"offset"
)
int
offset
,
@Param
(
"limit"
)
int
limit
);
/**
* 通过实体作为筛选条件查询
*
* @param bizMaterial 实例对象
* @return 对象列表
*/
List
<
BizMaterial
>
queryAll
(
BizMaterial
bizMaterial
);
/**
* 新增数据
*
* @param bizMaterial 实例对象
* @return 影响行数
*/
int
insert
(
BizMaterial
bizMaterial
);
/**
* 修改数据
*
* @param bizMaterial 实例对象
* @return 影响行数
*/
int
update
(
BizMaterial
bizMaterial
);
/**
* 通过主键删除数据
*
* @param id 主键
* @return 影响行数
*/
int
deleteById
(
Long
id
);
void
batchInsert
(
@Param
(
"list"
)
List
<
BizMaterial
>
bizMaterials
);
List
<
UpdateGroupMaterialDTO
>
listBizMaterialsByGroupId
(
@Param
(
"list"
)
List
<
String
>
groups
);
/**
* 插入或者更新
*/
void
insertOrUpdate
(
BizMaterial
bizMaterial
);
String
selectMaterialUrl4Biz
(
@Param
(
"bizId"
)
Long
bizId
,
@Param
(
"bizType"
)
Integer
bizType
);
}
\ No newline at end of file
pcloud-service-book/src/main/java/com/pcloud/book/group/mapper/GroupMaterialAccountMapper.java
View file @
b9a7a1f0
...
...
@@ -5,7 +5,6 @@ import org.apache.ibatis.annotations.Mapper;
import
org.apache.ibatis.annotations.Param
;
import
org.springframework.stereotype.Component
;
import
java.util.Date
;
import
java.util.List
;
/**
...
...
@@ -71,8 +70,9 @@ public interface GroupMaterialAccountMapper {
/**
* 获取一个新增/更新永久图文素材未达限制的公众号
*
* @param date
* @param useType
*/
List
<
GroupMaterialAccount
>
getActiveAccount
(
@Param
(
"date"
)
Date
date
,
@Param
(
"useType"
)
Integer
useType
);
List
<
GroupMaterialAccount
>
getActiveAccount
(
@Param
(
"useType"
)
Integer
useType
);
GroupMaterialAccount
getByAccountId
(
@Param
(
"accountId"
)
Long
accountId
);
}
\ No newline at end of file
pcloud-service-book/src/main/java/com/pcloud/book/group/service/impl/WeixinQrcodeServiceImpl.java
View file @
b9a7a1f0
package
com
.
pcloud
.
book
.
group
.
service
.
impl
;
import
cn.hutool.core.collection.CollUtil
;
import
com.pcloud.book.book.constant.BookConstant
;
import
com.pcloud.book.group.biz.GroupMaterialAccountBiz
;
import
com.pcloud.book.group.biz.GroupQrcodeBiz
;
import
com.pcloud.book.group.biz.WeixinQrcodeBiz
;
import
com.pcloud.book.group.dao.WeixinQrcodeDao
;
import
com.pcloud.book.group.dto.BookWxQrcodeDTO
;
import
com.pcloud.book.group.dto.GroupQrcodeInfo4Advertising
;
import
com.pcloud.book.group.dto.MaterialMigrateDTO
;
import
com.pcloud.book.group.dto.SearchDto
;
import
com.pcloud.book.group.dto.SyncWeixinGroupIdDTO
;
import
com.pcloud.book.group.dto.UpdateQrDTO
;
...
...
@@ -16,7 +20,8 @@ import com.pcloud.common.dto.ResponseDto;
import
com.pcloud.common.exceptions.BizException
;
import
com.pcloud.common.utils.ListUtils
;
import
com.pcloud.common.utils.ResponseHandleUtil
;
import
com.pcloud.common.utils.cache.redis.JedisClusterUtils
;
import
io.swagger.annotations.ApiOperation
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.http.ResponseEntity
;
import
org.springframework.web.bind.annotation.GetMapping
;
...
...
@@ -27,10 +32,10 @@ import org.springframework.web.bind.annotation.RequestMethod;
import
org.springframework.web.bind.annotation.RequestParam
;
import
org.springframework.web.bind.annotation.RestController
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.Map
;
import
io.swagger.annotations.ApiOperation
;
import
java.util.Objects
;
/**
* @author lily
...
...
@@ -46,6 +51,8 @@ public class WeixinQrcodeServiceImpl implements WeixinQrcodeService {
private
GroupQrcodeBiz
groupQrcodeBiz
;
@Autowired
private
WeixinQrcodeDao
weixinQrcodeDao
;
@Autowired
private
GroupMaterialAccountBiz
groupMaterialAccountBiz
;
@Override
@GetMapping
(
"tenQuartz"
)
...
...
@@ -184,4 +191,37 @@ public class WeixinQrcodeServiceImpl implements WeixinQrcodeService {
public
ResponseEntity
<
ResponseDto
<
List
<
UpdateQrDTO
>>>
listQrCode4Android
(
@RequestParam
(
"generation"
)
Integer
generation
,
@RequestParam
(
"num"
)
Integer
num
)
{
return
ResponseHandleUtil
.
toResponse
(
weixinQrcodeDao
.
listQrCode4Android
(
generation
,
num
));
}
@Override
@RequestMapping
(
value
=
"updateGroupMaterial"
,
method
=
RequestMethod
.
POST
)
public
ResponseEntity
<
ResponseDto
<
Integer
>>
updateGroupMaterial
(
@RequestBody
List
<
String
>
groups
)
{
if
(
CollUtil
.
isEmpty
(
groups
))
{
return
ResponseHandleUtil
.
toResponse
(
0
);
}
return
ResponseHandleUtil
.
toResponse
(
groupQrcodeBiz
.
updateGroupMaterial
(
groups
));
}
@Override
@RequestMapping
(
value
=
"/migrateMaterial"
,
method
=
RequestMethod
.
POST
)
public
ResponseEntity
<
ResponseDto
<
List
<
String
>>>
migrateMaterial
(
@RequestBody
MaterialMigrateDTO
migrateDTO
)
{
if
(
Objects
.
isNull
(
migrateDTO
.
getAccountId
())
||
CollUtil
.
isEmpty
(
migrateDTO
.
getGroups
()))
{
return
ResponseHandleUtil
.
toResponse
(
new
ArrayList
<>());
}
return
ResponseHandleUtil
.
toResponse
(
groupQrcodeBiz
.
migrateMaterial
(
migrateDTO
));
}
@Override
@RequestMapping
(
value
=
"syncGroupMaterial"
,
method
=
RequestMethod
.
POST
)
public
void
syncGroupMaterial
(
@RequestBody
Map
<
String
,
Long
>
accountMap
)
{
if
(
CollUtil
.
isEmpty
(
accountMap
))
{
return
;
}
groupQrcodeBiz
.
syncGroupMaterial
(
accountMap
);
}
@Override
@RequestMapping
(
value
=
"/addAccount4Material"
,
method
=
RequestMethod
.
GET
)
public
void
addAccount4Material
(
@RequestParam
(
"accountId"
)
Long
accountId
,
@RequestParam
(
"useType"
)
Integer
useType
)
{
groupMaterialAccountBiz
.
addAccount4Material
(
accountId
,
useType
);
}
}
pcloud-service-book/src/main/resources/mapper/group/BizMaterialMapper.xml
0 → 100644
View file @
b9a7a1f0
<?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.group.mapper.BizMaterialMapper"
>
<resultMap
type=
"com.pcloud.book.group.entity.BizMaterial"
id=
"BizMaterialMap"
>
<result
property=
"id"
column=
"id"
jdbcType=
"INTEGER"
/>
<result
property=
"mediaId"
column=
"media_id"
jdbcType=
"VARCHAR"
/>
<result
property=
"materialUrl"
column=
"material_url"
jdbcType=
"VARCHAR"
/>
<result
property=
"accountId"
column=
"account_id"
jdbcType=
"INTEGER"
/>
<result
property=
"bizType"
column=
"biz_type"
jdbcType=
"INTEGER"
/>
<result
property=
"bizId"
column=
"biz_id"
jdbcType=
"INTEGER"
/>
<result
property=
"createTime"
column=
"create_time"
jdbcType=
"TIMESTAMP"
/>
<result
property=
"updateTime"
column=
"update_time"
jdbcType=
"TIMESTAMP"
/>
</resultMap>
<!--查询单个-->
<select
id=
"queryById"
resultMap=
"BizMaterialMap"
>
select id,
media_id,
material_url,
account_id,
biz_type,
biz_id,
create_time,
update_time
from book.biz_material
where id = #{id}
</select>
<!--查询指定行数据-->
<select
id=
"queryAllByLimit"
resultMap=
"BizMaterialMap"
>
select id,
media_id,
material_url,
account_id,
biz_type,
biz_id,
create_time,
update_time
from book.biz_material
limit #{offset}, #{limit}
</select>
<!--通过实体作为筛选条件查询-->
<select
id=
"queryAll"
resultMap=
"BizMaterialMap"
>
select
id, media_id, material_url, account_id, biz_type, biz_id, create_time, update_time
from book.biz_material
<where>
<if
test=
"id != null"
>
and id = #{id}
</if>
<if
test=
"mediaId != null and mediaId != ''"
>
and media_id = #{mediaId}
</if>
<if
test=
"materialUrl != null and materialUrl != ''"
>
and material_url = #{materialUrl}
</if>
<if
test=
"accountId != null"
>
and account_id = #{accountId}
</if>
<if
test=
"bizType != null"
>
and biz_type = #{bizType}
</if>
<if
test=
"bizId != null"
>
and biz_id = #{bizId}
</if>
<if
test=
"createTime != null"
>
and create_time = #{createTime}
</if>
<if
test=
"updateTime != null"
>
and update_time = #{updateTime}
</if>
</where>
</select>
<!--新增所有列-->
<insert
id=
"insert"
keyProperty=
"id"
useGeneratedKeys=
"true"
>
insert into book.biz_material(media_id, material_url, account_id, biz_type, biz_id, create_time, update_time)
values (#{mediaId}, #{materialUrl}, #{accountId}, #{bizType}, #{bizId}, #{createTime}, #{updateTime})
</insert>
<insert
id=
"batchInsert"
parameterType=
"list"
>
insert into book.biz_material (media_id, material_url, account_id, biz_type, biz_id, create_time, update_time)
values
<foreach
collection=
"list"
item=
"item"
separator=
","
>
(#{item.mediaId}, #{item.materialUrl}, #{item.accountId}, #{item.bizType}, #{item.bizId}, #{item.createTime}, NOW())
</foreach>
on duplicate key update
media_id = values(media_id),
material_url = values(material_url),
account_id = values(account_id),
biz_type = values(biz_type),
biz_id = values(biz_id),
create_time = values(create_time),
update_time = values(update_time)
</insert>
<!--通过主键修改数据-->
<update
id=
"update"
>
update book.biz_material
<set>
<if
test=
"mediaId != null and mediaId != ''"
>
media_id = #{mediaId},
</if>
<if
test=
"materialUrl != null and materialUrl != ''"
>
material_url = #{materialUrl},
</if>
<if
test=
"accountId != null"
>
account_id = #{accountId},
</if>
<if
test=
"bizType != null"
>
biz_type = #{bizType},
</if>
<if
test=
"bizId != null"
>
biz_id = #{bizId},
</if>
<if
test=
"createTime != null"
>
create_time = #{createTime},
</if>
<if
test=
"updateTime != null"
>
update_time = #{updateTime},
</if>
</set>
where id = #{id}
</update>
<!--通过主键删除-->
<delete
id=
"deleteById"
>
delete
from book.biz_material
where id = #{id}
</delete>
<select
id=
"listBizMaterialsByGroupId"
resultType=
"com.pcloud.book.group.dto.UpdateGroupMaterialDTO"
parameterType=
"list"
>
SELECT
b.id AS id,
a.group_name AS groupName,
a.weixin_group_id AS wxGroupId,
a.id AS bookGroupQrcodeId,
a.qrcode_url AS qrcodeUrl,
b.account_id AS accountId,
b.media_id AS mediaId
FROM
book_group_qrcode a
LEFT JOIN biz_material b ON a.id = b.biz_id
WHERE
a.weixin_group_id IN
<foreach
collection=
"list"
open=
"("
close=
")"
item=
"item"
separator=
","
>
#{item}
</foreach>
</select>
<insert
id=
"insertOrUpdate"
>
insert into book.biz_material (media_id, material_url, account_id, biz_type, biz_id, create_time, update_time)
values
(#{mediaId}, #{materialUrl}, #{accountId}, #{bizType}, #{bizId}, #{createTime}, NOW())
on duplicate key update
media_id = values(media_id),
material_url = values(material_url),
account_id = values(account_id),
biz_type = values(biz_type),
biz_id = values(biz_id),
create_time = values(create_time),
update_time = values(update_time)
</insert>
<select
id=
"selectMaterialUrl4Biz"
resultType=
"java.lang.String"
>
select material_url from biz_material where biz_id = #{bizId} AND biz_type=#{bizType} limit 1
</select>
</mapper>
\ No newline at end of file
pcloud-service-book/src/main/resources/mapper/group/GroupMaterialAccountMapper.xml
View file @
b9a7a1f0
...
...
@@ -68,19 +68,25 @@
</where>
</select>
<select
id=
"getActiveAccount"
resultMap=
"GroupMaterialAccountMap"
>
select id,
account_id,
cover_media_id,
head_media_id,
status,
create_time,
update_time
from book.group_material_account
where
(status = 1 or (status = 0 and update_time
<![CDATA[ < ]]>
#{date}))
<if
test=
"useType != null"
>
and use_type = #{useType}
</if>
SELECT
a.id,
a.account_id,
a.cover_media_id,
a.head_media_id,
a.`status`,
a.create_time,
a.update_time,
count( 0 ) sum
FROM
group_material_account a
LEFT JOIN biz_material b ON a.account_id = b.account_id
WHERE
(a.`status` = 1 or (a.`status` = 0 and a.update_time
<![CDATA[ < ]]>
DATE(NOW())))
<if
test=
"useType != null"
>
and a.use_type = #{useType}
</if>
GROUP BY a.account_id
ORDER BY sum
</select>
<!--新增所有列-->
...
...
@@ -123,4 +129,17 @@
where id = #{id}
</delete>
<select
id=
"getByAccountId"
resultMap=
"GroupMaterialAccountMap"
>
select
id,
account_id,
cover_media_id,
head_media_id,
`status`,
create_time,
update_time
from group_material_account
where account_id = #{accountId}
</select>
</mapper>
\ No newline at end of file
pcloud-service-book/src/main/resources/mapper/group/GroupQrcode.Mapper.xml
View file @
b9a7a1f0
...
...
@@ -987,4 +987,43 @@
UPDATE book_group_qrcode SET media_id = #{mediaId},update_material_time = #{date}
WHERE id = #{id}
</update>
<select
id=
"getMigrateGroup"
parameterType=
"map"
resultType=
"com.pcloud.book.group.dto.GroupQrcodeDTO"
>
SELECT
id AS id,
classify_id AS classifyId,
group_name AS groupName,
weixin_qrcode_id AS weixinQrcodeId,
weixin_group_id AS weixinGroupId,
qrcode_url AS qrcodeUrl
FROM
book_group_qrcode
WHERE
weixin_group_id IN
<foreach
collection=
"list"
open=
"("
close=
")"
separator=
","
item=
"item"
>
#{item}
</foreach>
</select>
<select
id=
"listGroupMaterials"
resultType=
"com.pcloud.book.group.dto.GroupMaterialDTO"
>
SELECT
id,
group_name AS groupName,
qrcode_url AS qrcodeUrl,
media_id AS mediaId,
weixin_group_id AS wxGroupId,
update_material_time AS updateTime
FROM
book_group_qrcode
WHERE
media_id IS NOT NULL
LIMIT 1000
</select>
<delete
id=
"removeMediaIdByIds"
parameterType=
"map"
>
update book_group_qrcode set media_id = null,update_material_time = null where id in
<foreach
collection=
"list"
separator=
","
item=
"item"
open=
"("
close=
")"
>
${item}
</foreach>
</delete>
</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