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
e6a485e1
Commit
e6a485e1
authored
Sep 09, 2019
by
裴大威
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat 1001666 1v1客服机器人,不直接拉人,30人以下也发邀请链接
parent
6f78d387
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
65 additions
and
39 deletions
+65
-39
BookGroupClassifyBiz.java
.../java/com/pcloud/book/group/biz/BookGroupClassifyBiz.java
+10
-2
BookGroupClassifyBizImpl.java
.../pcloud/book/group/biz/impl/BookGroupClassifyBizImpl.java
+24
-10
GroupQrcodeBaseInfoVO.java
.../java/com/pcloud/book/group/vo/GroupQrcodeBaseInfoVO.java
+3
-0
BookGuideBizImpl.java
...a/com/pcloud/book/keywords/biz/impl/BookGuideBizImpl.java
+26
-25
GroupQrcode.Mapper.xml
...ok/src/main/resources/mapper/group/GroupQrcode.Mapper.xml
+2
-2
No files found.
pcloud-service-book/src/main/java/com/pcloud/book/group/biz/BookGroupClassifyBiz.java
View file @
e6a485e1
package
com
.
pcloud
.
book
.
group
.
biz
;
import
com.pcloud.book.group.dto.*
;
import
com.pcloud.book.group.dto.BookClassifyDTO
;
import
com.pcloud.book.group.dto.BookGroupStatisticDTO
;
import
com.pcloud.book.group.dto.ClassifyDTO
;
import
com.pcloud.book.group.dto.ClassifyLearningReportDto
;
import
com.pcloud.book.group.dto.GroupClassifyQrcodeDTO
;
import
com.pcloud.book.group.dto.GroupNameAndMaxSeqDTO
;
import
com.pcloud.book.group.dto.GroupQrcodeBaseDTO
;
import
com.pcloud.book.group.dto.ProAssocGroupAndUserNumberDTO
;
import
com.pcloud.book.group.entity.BookGroupClassify
;
import
com.pcloud.book.group.vo.AddClassifyVO
;
import
com.pcloud.book.group.vo.AdviserClassifyParam
;
...
...
@@ -12,6 +19,7 @@ import com.pcloud.book.group.vo.ClassifyAndUserCountVO;
import
com.pcloud.book.group.vo.ClassifyNameVO
;
import
com.pcloud.book.group.vo.ClassifyVO
;
import
com.pcloud.book.group.vo.GroupQrcode4ClassifyVO
;
import
com.pcloud.book.group.vo.GroupQrcodeBaseInfoVO
;
import
com.pcloud.book.group.vo.ListBookGroupQrcodeParamVO
;
import
com.pcloud.book.group.vo.ListClassify4WechatVO
;
import
com.pcloud.book.group.vo.ListClassifyVO
;
...
...
@@ -144,7 +152,7 @@ public interface BookGroupClassifyBiz {
/**
* 用户获取具体进群id
*/
String
getWxGroupIdByClassifyIdAndWechatId
(
Long
classifyId
,
Long
wechatUserId
);
GroupQrcodeBaseInfoVO
getWxGroupIdByClassifyIdAndWechatId
(
Long
classifyId
,
Long
wechatUserId
);
/**
* @Author:lili
...
...
pcloud-service-book/src/main/java/com/pcloud/book/group/biz/impl/BookGroupClassifyBizImpl.java
View file @
e6a485e1
...
...
@@ -22,7 +22,21 @@ import com.pcloud.book.group.dao.BookQrcodeUserDao;
import
com.pcloud.book.group.dao.JoinGroupCipherDao
;
import
com.pcloud.book.group.dao.LearningReportBrowseRecordDao
;
import
com.pcloud.book.group.dao.LearningReportTouchRecordDao
;
import
com.pcloud.book.group.dto.*
;
import
com.pcloud.book.group.dto.BookClassifyDTO
;
import
com.pcloud.book.group.dto.BookGroupDTO
;
import
com.pcloud.book.group.dto.BookGroupStatisticDTO
;
import
com.pcloud.book.group.dto.BookWxQrcodeDTO
;
import
com.pcloud.book.group.dto.ClassifyDTO
;
import
com.pcloud.book.group.dto.ClassifyLearningCountDto
;
import
com.pcloud.book.group.dto.ClassifyLearningReportDto
;
import
com.pcloud.book.group.dto.GroupAndUserNumberDTO
;
import
com.pcloud.book.group.dto.GroupClassifyQrcodeDTO
;
import
com.pcloud.book.group.dto.GroupNameAndMaxSeqDTO
;
import
com.pcloud.book.group.dto.GroupQrcodeBaseDTO
;
import
com.pcloud.book.group.dto.GroupQrcodeInfoDTO
;
import
com.pcloud.book.group.dto.ProAssocGroupAndUserNumberDTO
;
import
com.pcloud.book.group.dto.QrcodeNameAndProIdDTO
;
import
com.pcloud.book.group.dto.WeixinQrcodeDTO
;
import
com.pcloud.book.group.entity.BookGroupClassify
;
import
com.pcloud.book.group.entity.BookQrcodeUser
;
import
com.pcloud.book.group.entity.GroupQrcode
;
...
...
@@ -185,12 +199,10 @@ public class BookGroupClassifyBizImpl implements BookGroupClassifyBiz {
log
.
info
(
"[新增分类] : 可用微信群数量:{}个"
,
wechatGroupNum
);
throw
new
BookBizException
(
BookBizException
.
PARAM_IS_NULL
,
"群二维码数量不足,您可以明天再创建群。"
);
}
}
Integer
generation
=
null
;
if
(
new
Integer
(
2
).
equals
(
qrcodeNameAndProId
.
getJoinGroupType
()))
{
generation
=
3
;
}
WeixinQrcodeDTO
oneQrcode
=
weixinQrcodeBiz
.
getOneQrcode
(
generation
);
if
(
oneQrcode
==
null
)
{
...
...
@@ -587,7 +599,8 @@ public class BookGroupClassifyBizImpl implements BookGroupClassifyBiz {
}
@Override
public
String
getWxGroupIdByClassifyIdAndWechatId
(
Long
classifyId
,
Long
wechatUserId
)
{
@ParamLog
(
"[getWxGroupIdByClassifyIdAndWechatId]"
)
public
GroupQrcodeBaseInfoVO
getWxGroupIdByClassifyIdAndWechatId
(
Long
classifyId
,
Long
wechatUserId
)
{
if
(
null
==
classifyId
||
null
==
wechatUserId
)
{
return
null
;
}
...
...
@@ -596,7 +609,7 @@ public class BookGroupClassifyBizImpl implements BookGroupClassifyBiz {
return
null
;
}
final
GroupQrcodeBaseInfoVO
baseById
=
this
.
groupQrcodeBiz
.
getBaseById
(
wechat
.
getGroupQrcodeId
());
return
(
null
==
baseById
)
?
null
:
baseById
.
getWeixinGroupId
()
;
return
baseById
;
}
@ParamLog
(
"获取备用二维码"
)
...
...
@@ -1061,10 +1074,6 @@ public class BookGroupClassifyBizImpl implements BookGroupClassifyBiz {
}
@Override
public
BigDecimal
getPayPrice
(
Long
qrcodeId
,
String
wxId
)
{
return
joinGroupCipherDao
.
getPayPrice
(
wxId
,
qrcodeId
);
}
@ParamLog
(
"拖动排序"
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
...
...
@@ -1077,6 +1086,11 @@ public class BookGroupClassifyBizImpl implements BookGroupClassifyBiz {
}
@Override
public
BigDecimal
getPayPrice
(
Long
qrcodeId
,
String
wxId
)
{
return
joinGroupCipherDao
.
getPayPrice
(
wxId
,
qrcodeId
);
}
@Override
public
void
clickClassify
(
Long
wechatUserId
,
Long
bookGroupId
,
Long
classifyId
)
{
bookGroupClassifyDao
.
addClickClassify
(
wechatUserId
,
bookGroupId
,
classifyId
);
}
...
...
@@ -1089,7 +1103,7 @@ public class BookGroupClassifyBizImpl implements BookGroupClassifyBiz {
return
new
ArrayList
<>();
}
return
classifyVOS
;
}
}
pcloud-service-book/src/main/java/com/pcloud/book/group/vo/GroupQrcodeBaseInfoVO.java
View file @
e6a485e1
...
...
@@ -27,4 +27,7 @@ public class GroupQrcodeBaseInfoVO implements Serializable {
@ApiModelProperty
(
value
=
"二维码地址"
,
hidden
=
true
)
private
String
weixinGroupId
;
@ApiModelProperty
(
value
=
"当前群人数"
,
hidden
=
true
)
private
Integer
userNumber
;
}
pcloud-service-book/src/main/java/com/pcloud/book/keywords/biz/impl/BookGuideBizImpl.java
View file @
e6a485e1
...
...
@@ -2,9 +2,6 @@ package com.pcloud.book.keywords.biz.impl;
import
com.pcloud.book.base.exception.BookBizException
;
import
com.pcloud.book.book.constant.BookConstant
;
import
com.pcloud.book.clock.check.BookClockCheck
;
import
com.pcloud.book.clock.dao.BookClockKeywordDao
;
import
com.pcloud.book.clock.dto.BookClockKeywordDTO
;
import
com.pcloud.book.consumer.channel.QrcodeSceneConsr
;
import
com.pcloud.book.consumer.resource.ProductConsr
;
import
com.pcloud.book.consumer.wechatgroup.WechatGroupConsr
;
...
...
@@ -15,7 +12,11 @@ import com.pcloud.book.group.dao.BookGroupClassifyDao;
import
com.pcloud.book.group.dao.BookGroupDao
;
import
com.pcloud.book.group.dao.GroupQrcodeDao
;
import
com.pcloud.book.group.dao.JoinGroupCipherDao
;
import
com.pcloud.book.group.dto.*
;
import
com.pcloud.book.group.dto.BookGroupDTO
;
import
com.pcloud.book.group.dto.GroupClassifyQrcodeDTO
;
import
com.pcloud.book.group.dto.GroupQrcodeDTO
;
import
com.pcloud.book.group.dto.JoinGroupCipherDTO
;
import
com.pcloud.book.group.dto.PushAddUserMessageDTO
;
import
com.pcloud.book.group.entity.AppTouchRecord
;
import
com.pcloud.book.group.entity.GroupQrcode
;
import
com.pcloud.book.group.enums.TouchTypeEnum
;
...
...
@@ -38,7 +39,6 @@ import com.pcloud.book.keywords.vo.GuideVO;
import
com.pcloud.book.keywords.vo.ReplyMessageVO
;
import
com.pcloud.book.keywords.vo.SetGuideVO
;
import
com.pcloud.book.keywords.vo.UpdateGuideVO
;
import
com.pcloud.book.util.properties.BookProps
;
import
com.pcloud.book.weixinclock.dao.WeixinClockGroupClassifyDao
;
import
com.pcloud.book.weixinclock.dto.WeixinClockDto
;
import
com.pcloud.channelcenter.wechat.dto.AccountSettingDto
;
...
...
@@ -47,7 +47,6 @@ import com.pcloud.common.utils.ListUtils;
import
com.pcloud.common.utils.cache.redis.JedisClusterUtils
;
import
com.pcloud.common.utils.string.StringUtil
;
import
com.pcloud.wechatgroup.message.dto.AgreeAddUserDTO
;
import
com.sdk.wxgroup.AddToGroupVO
;
import
com.sdk.wxgroup.SendGroupInviteVO
;
import
com.sdk.wxgroup.SendMessageTypeEnum
;
import
com.sdk.wxgroup.SendTextMessageVO
;
...
...
@@ -94,10 +93,6 @@ public class BookGuideBizImpl implements BookGuideBiz {
@Autowired
private
AppTouchRecordDao
appTouchRecordDao
;
@Autowired
private
BookClockCheck
bookClockCheck
;
@Autowired
private
BookClockKeywordDao
bookClockKeywordDao
;
@Autowired
private
GroupQrcodeDao
groupQrcodeDao
;
@Autowired
private
BookGroupClassifyDao
bookGroupClassifyDao
;
...
...
@@ -125,7 +120,12 @@ public class BookGuideBizImpl implements BookGuideBiz {
}
final
JoinGroupCipherDTO
dto
=
joinGroupCipherDao
.
getDTOByCipher
(
cipher
);
//获取群
final
String
wxGroupId
=
bookGroupClassifyBiz
.
getWxGroupIdByClassifyIdAndWechatId
(
dto
.
getClassifyId
(),
dto
.
getWechatUserId
());
final
GroupQrcodeBaseInfoVO
wxGroup
=
bookGroupClassifyBiz
.
getWxGroupIdByClassifyIdAndWechatId
(
dto
.
getClassifyId
(),
dto
.
getWechatUserId
());
if
(
null
==
wxGroup
)
{
log
.
error
(
"[同意加好友发送欢迎语] : bookGroupClassifyBiz.getWxGroupIdByClassifyIdAndWechatId dto:{}"
);
throw
new
BookBizException
(
BookBizException
.
ID_NOT_EXIST
,
"群不存在"
);
}
String
wxGroupId
=
wxGroup
.
getWeixinGroupId
();
if
(
agreeAddUserDTO
.
getFirst
()
!=
null
&&
agreeAddUserDTO
.
getFirst
())
{
// 如果是第一次就只发欢迎文案
SendTextMessageVO
vo
=
new
SendTextMessageVO
();
...
...
@@ -147,17 +147,18 @@ public class BookGuideBizImpl implements BookGuideBiz {
//发关键词列表
SendWeixinRequestTools
.
sendKeywordsInfoToSelf
(
keywords
,
agreeAddUserDTO
.
getRobotWxId
(),
agreeAddUserDTO
.
getUserWxId
(),
agreeAddUserDTO
.
getIp
());
// 拉群
final
Integer
peopleCounts
=
WxGroupSDK
.
getPeopleCounts
(
wxGroupId
,
agreeAddUserDTO
.
getRobotWxId
(),
agreeAddUserDTO
.
getIp
()
);
// final Integer peopleCounts = wxGroup.getUserNumber(
);
// 邀请好友进群有次数限制,目前测试为每天只能拉30-40人就操作频繁,所以在此加判断,超过30人或者群人数超过30人就发送邀请链接
final
String
num
=
JedisClusterUtils
.
get
(
BookConstant
.
WXGROUP_ADD_USER_NUM
+
agreeAddUserDTO
.
getRobotWxId
());
log
.
info
(
"[同意加好友发送欢迎语] 拉群 agreeAddUserDTO:{}, wxGroup
Id:{}, peopleCounts:{}, num:{}"
,
agreeAddUserDTO
,
wxGroupId
,
peopleCounts
,
num
);
log
.
info
(
"[同意加好友发送欢迎语] 拉群 agreeAddUserDTO:{}, wxGroup
:{}, num:{}"
,
agreeAddUserDTO
,
wxGroup
,
num
);
if
(
StringUtil
.
isBlank
(
wxGroupId
))
{
log
.
info
(
"[同意加好友发送欢迎语] 拉群 没有找到群 bookGroupClassifyBiz.getGroupQrcode4ClassifyWechat JoinGroupCipherDTO :{}"
,
dto
);
return
;
}
// 1001666 刘娜需求-1v1客服机器人,不直接拉人,30人以下也发邀请链接
// 生产环境限制30,其它5和10,全部使用群链接
final
boolean
isPro
=
"pro"
.
equalsIgnoreCase
(
BookProps
.
getSystemEnv
());
if
((!
StringUtil
.
isBlank
(
num
)
&&
Integer
.
parseInt
(
num
)
>=
(
isPro
?
30
:
5
))
||
peopleCounts
>=
(
isPro
?
30
:
10
))
{
//
final boolean isPro = "pro".equalsIgnoreCase(BookProps.getSystemEnv());
//
if ((!StringUtil.isBlank(num) && Integer.parseInt(num) >= (isPro ? 30 : 5)) || peopleCounts >= (isPro ? 30 : 10)) {
SendGroupInviteVO
sendGroupInviteVO
=
new
SendGroupInviteVO
();
sendGroupInviteVO
.
setAltId
(
agreeAddUserDTO
.
getRobotWxId
());
sendGroupInviteVO
.
setWxId
(
agreeAddUserDTO
.
getUserWxId
());
...
...
@@ -166,16 +167,16 @@ public class BookGuideBizImpl implements BookGuideBiz {
WxGroupSDK
.
sendGroupInvite
(
sendGroupInviteVO
);
log
.
info
(
"[同意加好友发送欢迎语] 发送进群链接 sendGroupInviteVO:{}"
,
sendGroupInviteVO
);
// 进群之后更新群qrCodeId
updateQrcodeForCipher
(
wxGroupId
,
cipher
,
agreeAddUserDTO
.
getUserWxId
());
return
;
}
AddToGroupVO
vo1
=
new
AddToGroupVO
();
vo1
.
setWxGroupId
(
wxGroupId
);
vo1
.
setWxId
(
agreeAddUserDTO
.
getUserWxId
());
vo1
.
setAltId
(
agreeAddUserDTO
.
getRobotWxId
());
vo1
.
setIp
(
agreeAddUserDTO
.
getIp
());
log
.
info
(
"[同意加好友发送欢迎语 拉群] AddToGroupVO :{}"
,
vo1
);
WxGroupSDK
.
addToGroup
(
vo1
);
//
updateQrcodeForCipher(wxGroupId, cipher, agreeAddUserDTO.getUserWxId());
//
return;
//
}
//
AddToGroupVO vo1 = new AddToGroupVO();
//
vo1.setWxGroupId(wxGroupId);
//
vo1.setWxId(agreeAddUserDTO.getUserWxId());
//
vo1.setAltId(agreeAddUserDTO.getRobotWxId());
//
vo1.setIp(agreeAddUserDTO.getIp());
//
log.info("[同意加好友发送欢迎语 拉群] AddToGroupVO :{}", vo1);
//
WxGroupSDK.addToGroup(vo1);
// 进群之后更新群qrCodeId
updateQrcodeForCipher
(
wxGroupId
,
cipher
,
agreeAddUserDTO
.
getUserWxId
());
// 拉一次+1
...
...
pcloud-service-book/src/main/resources/mapper/group/GroupQrcode.Mapper.xml
View file @
e6a485e1
...
...
@@ -180,9 +180,9 @@
and id=#{id}
</select>
<select
id=
"getBaseById"
parameterType=
"Long"
resultType=
"GroupQrcodeBaseInfoVO"
>
<select
id=
"getBaseById"
parameterType=
"Long"
resultType=
"
com.pcloud.book.group.vo.
GroupQrcodeBaseInfoVO"
>
select
id groupQrcodeId, group_name groupName,qrcode_url qrcodeUrl, weixin_group_id as weixinGroupId
id groupQrcodeId, group_name groupName,qrcode_url qrcodeUrl, weixin_group_id as weixinGroupId
, user_number userNumber
from
book_group_qrcode
where
...
...
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