Commit 0d431de9 by 吴博

个人号群发增加小睿类型

parent 6c55a284
......@@ -21,7 +21,11 @@ public enum LargeTempletEnum {
/**
* 特殊出版社类
*/
SPECIAL_AGENT(5, "特殊出版社");
SPECIAL_AGENT(5, "特殊出版社"),
/**
* 小睿
*/
XIAORUI(6,"小睿");
public final Integer code;
......
package com.pcloud.book.pcloudKeyword.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class RobotClassifyDTO {
@ApiModelProperty("微信id")
private String wxId;
@ApiModelProperty("分类名称")
private String classifyName;
@ApiModelProperty("小号分类id")
private Integer classifyId;
@ApiModelProperty("小号昵称")
private String nickName;
}
package com.pcloud.book.pcloudKeyword.service;
import com.pcloud.book.pcloudKeyword.dto.RobotClassifyDTO;
import com.pcloud.common.dto.ResponseDto;
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;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import java.util.List;
import java.util.Map;
@FeignClient(value = "pcloud-service-book", qualifier = "robotServiceCloud", path = "book/v1.0/pcloudRobotService")
@Api(description = "平台个人号内部接口")
public interface PcloudRobotService {
@ApiOperation(value = "批量获取个人号分类信息", httpMethod = "POST")
@PostMapping("getRobotClassifyBatch")
ResponseEntity<ResponseDto<Map<String, RobotClassifyDTO>>> getRobotClassifyBatch(@RequestBody List<String> robotIds);
@ApiOperation(value = "获取所有个人号分类信息", httpMethod = "GET")
@GetMapping("getAllPcloudRobot")
ResponseEntity<ResponseDto<List<RobotClassifyDTO>>> getAllPcloudRobot();
}
package com.pcloud.book.consumer.wechatgroup;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.pcloud.book.base.exception.BookBizException;
import com.pcloud.common.core.aspect.ParamLog;
import com.pcloud.common.exceptions.BizException;
import com.pcloud.common.page.PageBeanNew;
import com.pcloud.common.utils.ListUtils;
import com.pcloud.common.utils.ResponseHandleUtil;
import com.pcloud.common.utils.json.JSONUtils;
import com.pcloud.common.utils.string.StringUtil;
import com.pcloud.wechatgroup.group.dto.GroupMemberStatisDTO;
import com.pcloud.wechatgroup.group.dto.GroupRobotDTO;
......@@ -20,15 +23,11 @@ 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.AltAndUserDTO;
import com.pcloud.wechatgroup.selfrobot.dto.AltAndUserResultDTO;
import com.pcloud.wechatgroup.selfrobot.dto.AvailableRobotParamDTO;
import com.pcloud.wechatgroup.selfrobot.dto.RobotBaseInfoDTO;
import com.pcloud.wechatgroup.selfrobot.dto.SelfRobotDTO;
import com.pcloud.wechatgroup.selfrobot.dto.UserRobotDTO;
import com.pcloud.wechatgroup.selfrobot.dto.*;
import com.pcloud.wechatgroup.selfrobot.service.SelfRobotService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Component;
import org.springframework.util.CollectionUtils;
......@@ -619,4 +618,23 @@ public class WechatGroupConsr {
}
return ids;
}
@ParamLog("分页查小号好友id")
public PageBeanNew<String> listPageFriend(Integer currentPage,Integer numPerPage,String robotId,String name){
PageBeanNew<String> pageBeanNew = null;
FriendParamDTO friendParamDTO = new FriendParamDTO();
friendParamDTO.setCurrentPage(currentPage);
friendParamDTO.setNumPerPage(numPerPage);
friendParamDTO.setRobotId(robotId);
friendParamDTO.setName(name);
try {
ResponseEntity responseEntity = selfRobotService.listPageFriendId(friendParamDTO);
Object object = ResponseHandleUtil.parseResponse(responseEntity);
ObjectMapper mapper = new ObjectMapper();
pageBeanNew = mapper.readValue(JSONUtils.toJsonString(object), PageBeanNew.class);
} catch (Exception e){
log.error("[selfRobotService.listPageFriendId]调用失败" + e.getMessage(), e);
}
return pageBeanNew;
}
}
......@@ -105,6 +105,8 @@ import com.pcloud.book.keywords.dao.BookKeywordDao;
import com.pcloud.book.keywords.dto.KeywordDTO;
import com.pcloud.book.keywords.enums.ReplyTypeEnum;
import com.pcloud.book.keywords.vo.ListKeywordVO;
import com.pcloud.book.pcloudkeyword.biz.PcloudRobotBiz;
import com.pcloud.book.pcloudkeyword.entity.PcloudRobot;
import com.pcloud.book.reading.dao.ReadingUserDao;
import com.pcloud.book.util.common.ThreadPoolUtils;
import com.pcloud.channelcenter.base.constants.ChannelConstants;
......@@ -317,6 +319,8 @@ public class BookGroupBizImpl implements BookGroupBiz {
private ReadingUserDao readingUserDao;
@Autowired
private SelfRobotKeywordBiz selfRobotKeywordBiz;
@Autowired
private PcloudRobotBiz pcloudRobotBiz;
private static final ThreadPoolExecutor PLATFORM_STATISTICS_EXPORT_THREAD = new ThreadPoolExecutor(2, 2,
0, TimeUnit.SECONDS, new LinkedBlockingQueue<>(),
......@@ -3813,29 +3817,49 @@ public class BookGroupBizImpl implements BookGroupBiz {
Integer currentPage = userSelectParamDTO.getCurrentPage();
Integer numPerPage = userSelectParamDTO.getNumPerPage();
Map<String, Object> map = new HashMap<>();
//用户昵称id模糊查询
if (!StringUtil.isEmpty(userSelectParamDTO.getUserQuery())) {
List<String> wxUserIds = wechatGroupConsr.getByUserQuery(userSelectParamDTO.getUserQuery());
if (!ListUtils.isEmpty(wxUserIds)) {
map.put("wxUserIds", wxUserIds);
} else {
//判断robotid是否是小睿
String robotId = userSelectParamDTO.getRobotId();
List<UserBookInfoVO> list = new ArrayList<>();
Integer totalCount = 0;
if (StringUtil.isEmpty(robotId)){
throw new BizException(BizException.PARAM_IS_NULL.getCode(),"robotId为空");
}
PcloudRobot pcloudRobot = pcloudRobotBiz.getPcloudRobotByWxId(robotId);
if (null != pcloudRobot){
PageBeanNew<String> wechatUserIdPage = wechatGroupConsr.listPageFriend(currentPage,numPerPage,
robotId,userSelectParamDTO.getUserQuery());
if (!ListUtils.isEmpty(wechatUserIdPage.getRecordList())){
List<String> wechatUserIds = wechatUserIdPage.getRecordList();
list = groupSet.setUserBookInfo4SelfPush4XIAORUI(wechatUserIds);
totalCount = wechatUserIdPage.getTotalCount();
}
}else {
//用户昵称id模糊查询
if (!StringUtil.isEmpty(userSelectParamDTO.getUserQuery())) {
List<String> wxUserIds = wechatGroupConsr.getByUserQuery(userSelectParamDTO.getUserQuery());
if (!ListUtils.isEmpty(wxUserIds)) {
map.put("wxUserIds", wxUserIds);
} else {
return new PageBeanNew<>(currentPage, numPerPage, 0, new ArrayList<>());
}
}
map.put("depLabelId", userSelectParamDTO.getDepLabelId());
map.put("proLabelId", userSelectParamDTO.getProLabelId());
map.put("altId", userSelectParamDTO.getRobotId());
map.put("bookIds", userSelectParamDTO.getBookIds());
List<UserBookInfoVO> countlist = bookGroupCipherUserDao.listUser4SelfPush(map);
if (ListUtils.isEmpty(countlist)) {
return new PageBeanNew<>(currentPage, numPerPage, 0, new ArrayList<>());
}
map.put("pageNum", currentPage * numPerPage);
map.put("numPerPage", numPerPage);
list = bookGroupCipherUserDao.listUser4SelfPush(map);
//填充个人号群发用户信息、扫码书刊信息
groupSet.setUserBookInfo4SelfPush(list);
totalCount = countlist.size();
}
map.put("depLabelId", userSelectParamDTO.getDepLabelId());
map.put("proLabelId", userSelectParamDTO.getProLabelId());
map.put("altId", userSelectParamDTO.getRobotId());
map.put("bookIds", userSelectParamDTO.getBookIds());
List<UserBookInfoVO> countlist = bookGroupCipherUserDao.listUser4SelfPush(map);
if (ListUtils.isEmpty(countlist)) {
return new PageBeanNew<>(currentPage, numPerPage, 0, new ArrayList<>());
}
map.put("pageNum", currentPage * numPerPage);
map.put("numPerPage", numPerPage);
List<UserBookInfoVO> list = bookGroupCipherUserDao.listUser4SelfPush(map);
//填充个人号群发用户信息、扫码书刊信息
groupSet.setUserBookInfo4SelfPush(list);
return new PageBeanNew<>(currentPage, numPerPage, countlist.size(), list);
return new PageBeanNew<>(currentPage, numPerPage,totalCount, list);
}
@Override
......
......@@ -796,4 +796,24 @@ public class GroupSet {
}
public List<UserBookInfoVO> setUserBookInfo4SelfPush4XIAORUI(List<String> wechatUserIds) {
List<UserBookInfoVO> userBookInfoVOS = new ArrayList<>();
if (!ListUtils.isEmpty(wechatUserIds)){
Map<String, GroupUserDTO> userDTOMap = wechatGroupConsr.mapWxUserInfoByWxIdList(wechatUserIds);
List<Long> labelIds = new ArrayList<>();
for (String wechatUserId : wechatUserIds) {
//用户信息
if (!MapUtils.isEmpty(userDTOMap) && userDTOMap.containsKey(wechatUserId)) {
UserBookInfoVO userBookInfoVO = new UserBookInfoVO();
GroupUserDTO userDTO = userDTOMap.get(wechatUserId);
userBookInfoVO.setHeadPic(userDTO.getHeadPic());
userBookInfoVO.setWxUserId(wechatUserId);
userBookInfoVO.setNickName(userDTO.getNickName());
userBookInfoVO.setSex(userDTO.getSex());
userBookInfoVOS.add(userBookInfoVO);
}
}
}
return userBookInfoVOS;
}
}
package com.pcloud.book.pcloudkeyword.biz;
import com.pcloud.book.pcloudKeyword.dto.RobotClassifyDTO;
import com.pcloud.book.pcloudkeyword.entity.PcloudClassifyTemplate;
import com.pcloud.book.pcloudkeyword.entity.PcloudRobot;
import com.pcloud.book.pcloudkeyword.entity.PcloudRobotWelcome;
import com.pcloud.common.page.PageBeanNew;
import java.util.List;
import java.util.Map;
public interface PcloudRobotBiz {
......@@ -30,4 +32,10 @@ public interface PcloudRobotBiz {
void openTemplate(Integer classifyId, Long templateId);
PcloudClassifyTemplate getTemplateByClassifyId(Integer classifyId);
Map<String, RobotClassifyDTO> mapByIds4Classify(List<String> robotIds);
List<RobotClassifyDTO> getAllPcloudRobot();
PcloudRobot getPcloudRobotByWxId(String robotId);
}
......@@ -2,8 +2,12 @@ package com.pcloud.book.pcloudkeyword.biz.impl;
import com.pcloud.book.base.exception.BookBizException;
import com.pcloud.book.consumer.content.ResourceConsr;
import com.pcloud.book.group.dto.LargeTempletDTO;
import com.pcloud.book.group.enums.LargeTempletEnum;
import com.pcloud.book.guide.mapper.PcloudRobotSilenceMapper;
import com.pcloud.book.pcloudKeyword.dto.RobotClassifyDTO;
import com.pcloud.book.pcloudkeyword.biz.PcloudRobotBiz;
import com.pcloud.book.pcloudkeyword.biz.PcloudRobotClassifyBiz;
import com.pcloud.book.pcloudkeyword.dao.PcloudClassifyTemplateDao;
import com.pcloud.book.pcloudkeyword.dao.PcloudKeywordClassifyDao;
import com.pcloud.book.pcloudkeyword.dao.PcloudRobotDao;
......@@ -15,6 +19,7 @@ import com.pcloud.book.pcloudkeyword.entity.PcloudRobot;
import com.pcloud.book.pcloudkeyword.entity.PcloudRobotQrcode;
import com.pcloud.book.pcloudkeyword.entity.PcloudRobotWelcome;
import com.pcloud.book.pcloudkeyword.enums.WelcomeReplyTypeEnum;
import com.pcloud.book.pcloudkeyword.facade.response.PcloudRobotClassifyResponseVO;
import com.pcloud.common.core.aspect.ParamLog;
import com.pcloud.common.page.PageBeanNew;
import com.pcloud.common.page.PageParam;
......@@ -56,6 +61,8 @@ public class PcloudRobotBizImpl implements PcloudRobotBiz {
private PcloudRobotSilenceMapper pcloudRobotSilenceMapper;
@Autowired
private PcloudClassifyTemplateDao pcloudClassifyTemplateDao;
@Autowired
private PcloudRobotClassifyBiz pcloudRobotClassifyBiz;
@Override
@Transactional(rollbackFor = Exception.class)
......@@ -231,6 +238,25 @@ public class PcloudRobotBizImpl implements PcloudRobotBiz {
return pcloudClassifyTemplateDao.getTemplateByClassifyId(classifyId);
}
@Override
@ParamLog(value = "批量获取个人号分类")
public Map<String, RobotClassifyDTO> mapByIds4Classify(List<String> robotIds) {
if (ListUtils.isEmpty(robotIds)){
return new HashMap<>();
}
return pcloudRobotDao.mapByIds4Classify(robotIds);
}
@Override
public List<RobotClassifyDTO> getAllPcloudRobot() {
return pcloudRobotDao.getAllPcloudRobot();
}
@Override
public PcloudRobot getPcloudRobotByWxId(String robotId) {
return pcloudRobotDao.getByWxId(robotId);
}
@ParamLog("填充欢迎语回复")
private void fillRobotWelcome(List<PcloudRobotWelcome> robotWelcomeList) {
if(ListUtils.isEmpty(robotWelcomeList)){
......
package com.pcloud.book.pcloudkeyword.dao;
import com.pcloud.book.pcloudKeyword.dto.RobotClassifyDTO;
import com.pcloud.book.pcloudkeyword.entity.PcloudRobot;
import com.pcloud.common.core.dao.BaseDao;
import java.util.List;
import java.util.Map;
public interface PcloudRobotDao extends BaseDao<PcloudRobot> {
......@@ -14,4 +16,9 @@ public interface PcloudRobotDao extends BaseDao<PcloudRobot> {
void updateWakeUpByClassifyIds(List<Integer> classifyList);
void clearWakeUp();
Map<String, RobotClassifyDTO> mapByIds4Classify(List<String> robotIds);
List<RobotClassifyDTO> getAllPcloudRobot();
}
package com.pcloud.book.pcloudkeyword.dao.impl;
import com.pcloud.book.pcloudKeyword.dto.RobotClassifyDTO;
import com.pcloud.book.pcloudkeyword.dao.PcloudRobotDao;
import com.pcloud.book.pcloudkeyword.entity.PcloudRobot;
import com.pcloud.common.core.dao.BaseDaoImpl;
import org.springframework.stereotype.Component;
import java.util.List;
import java.util.Map;
@Component("pcloudRobotDao")
public class PcloudRobotDaoImpl extends BaseDaoImpl<PcloudRobot> implements PcloudRobotDao {
......@@ -29,4 +31,15 @@ public class PcloudRobotDaoImpl extends BaseDaoImpl<PcloudRobot> implements Pclo
public void clearWakeUp() {
this.getSessionTemplate().update(this.getStatement("clearWakeUp"));
}
@Override
public Map<String, RobotClassifyDTO> mapByIds4Classify(List<String> robotIds) {
return this.getSessionTemplate().selectMap(this.getStatement("mapByIds4Classify"),robotIds,"wxId");
}
@Override
public List<RobotClassifyDTO> getAllPcloudRobot() {
return this.getSessionTemplate().selectList(this.getStatement("getAllPcloudRobot"));
}
}
package com.pcloud.book.pcloudkeyword.service.impl;
import com.pcloud.book.pcloudKeyword.dto.RobotClassifyDTO;
import com.pcloud.book.pcloudKeyword.service.PcloudRobotService;
import com.pcloud.book.pcloudkeyword.biz.PcloudRobotBiz;
import com.pcloud.common.dto.ResponseDto;
import com.pcloud.common.utils.ResponseHandleUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Map;
@RequestMapping("pcloudRobotService")
@RestController("pcloudRobotService")
public class PcloudRobotServiceImpl implements PcloudRobotService {
@Autowired
private PcloudRobotBiz pcloudRobotBiz;
@Override
@PostMapping("getRobotClassifyBatch")
public ResponseEntity<ResponseDto<Map<String, RobotClassifyDTO>>> getRobotClassifyBatch(@RequestBody List<String> robotIds) {
return ResponseHandleUtil.toResponse(pcloudRobotBiz.mapByIds4Classify(robotIds));
}
@Override
@GetMapping("getAllPcloudRobot")
public ResponseEntity<ResponseDto<List<RobotClassifyDTO>>> getAllPcloudRobot() {
return ResponseHandleUtil.toResponse(pcloudRobotBiz.getAllPcloudRobot());
}
}
......@@ -150,4 +150,37 @@
update pcloud_robot set wake_up = 0
</update>
<select id="mapByIds4Classify" parameterType="list" resultType="com.pcloud.book.pcloudKeyword.dto.RobotClassifyDTO">
select
p.wx_id wxId,
p.robot_type classifyId,
pr.classify_name classifyName
from
pcloud_robot p
left join pcloud_robot_classify pr
on p.robot_type = pr.id
where
pr.is_delete = 0
<if test="list != null and list.size > 0">
and p.wx_id in
<foreach collection="list" index="index" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</if>
</select>
<select id="getAllPcloudRobot" resultType="com.pcloud.book.pcloudKeyword.dto.RobotClassifyDTO">
select
p.wx_id wxId,
p.nick_name nickName,
p.robot_type classifyId,
pr.classify_name classifyName
from
pcloud_robot p
left join pcloud_robot_classify pr
on p.robot_type = pr.id
where
pr.is_delete = 0
</select>
</mapper>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment