Commit 52bbc182 by 吴博

1002622 客服流程

parent 8d9b72d2
......@@ -25,4 +25,7 @@ public class RobotClassifyDTO {
@ApiModelProperty("小号真是状态(1:上线 2:离线)")
private Integer realStatus;
@ApiModelProperty("分类图片")
private String qrcodeUrl;
}
......@@ -3,9 +3,7 @@ package com.pcloud.book.pcloudKeyword.service;
import com.pcloud.book.pcloudKeyword.dto.PcloudRobotDTO;
import com.pcloud.book.pcloudKeyword.dto.RobotClassifyDTO;
import com.pcloud.common.dto.ResponseDto;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.cloud.netflix.feign.FeignClient;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
......@@ -16,6 +14,10 @@ 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;
import io.swagger.annotations.ApiParam;
@FeignClient(value = "pcloud-service-book", qualifier = "robotServiceCloud", path = "book/v1.0/pcloudRobotService")
@Api(description = "平台个人号内部接口")
public interface PcloudRobotService {
......@@ -62,4 +64,15 @@ public interface PcloudRobotService {
@ApiOperation(value = "处理小程序二维码", httpMethod = "GET")
@GetMapping("handleMiniAppQr")
void handleMiniAppQr();
@ApiOperation("根据小号类别获取可用的小号")
@GetMapping("getValidPcloudRobotByType")
public ResponseEntity<ResponseDto<PcloudRobotDTO>> getValidPcloudRobotByType(@RequestParam("robotType") @ApiParam("小号分类") Long robotType);
@ApiOperation("获取分类信息")
@GetMapping("getClassifyInfo")
public ResponseEntity<ResponseDto<RobotClassifyDTO>> getClassifyInfo(@RequestParam("robotType") @ApiParam("小号分类") Long robotType);
}
package com.pcloud.book.pcloudkeyword.biz;
import com.pcloud.book.pcloudKeyword.dto.PcloudRobotDTO;
import com.pcloud.book.pcloudKeyword.dto.RobotClassifyDTO;
import com.pcloud.book.pcloudkeyword.dto.PcloudTdDTO;
import com.pcloud.book.pcloudkeyword.entity.PcloudClassifyTemplate;
......@@ -113,4 +114,7 @@ public interface PcloudRobotBiz {
PcloudRobotResponseVO getSelfRobotClassify(String robotId);
void sendQQWelcomeReply(Long receiverId, Long userId, List<PcloudRobotWelcome> robotWelcomeListByPcloudClassifyId);
PcloudRobotDTO getValidPcloudRobotByType(Long robotType);
}
package com.pcloud.book.pcloudkeyword.biz;
import com.pcloud.book.pcloudKeyword.dto.RobotClassifyDTO;
import com.pcloud.book.pcloudkeyword.dto.ClassifyWelcomeDTO;
import com.pcloud.book.pcloudkeyword.entity.PcloudRobotClassify;
import com.pcloud.book.pcloudkeyword.facade.response.PcloudRobotClassifyResponseVO;
......@@ -51,4 +52,8 @@ public interface PcloudRobotClassifyBiz {
void updateSeqNum4RobotClassify(ClassifySeqNumUpdateVO vo);
void testSentry();
RobotClassifyDTO getClassifyInfo(Long robotType);
PageBeanNew<PcloudRobotClassifyResponseVO> listClassifyByPage4Mini(Integer currentPage, Integer numPerPage);
}
......@@ -22,6 +22,7 @@ import com.pcloud.book.group.tools.SendWeixinRequestTools;
import com.pcloud.book.guide.biz.PcloudGuideBiz;
import com.pcloud.book.guide.biz.PcloudRobotWakeUpBiz;
import com.pcloud.book.guide.mapper.PcloudRobotSilenceMapper;
import com.pcloud.book.pcloudKeyword.dto.PcloudRobotDTO;
import com.pcloud.book.pcloudKeyword.dto.RobotClassifyDTO;
import com.pcloud.book.pcloudkeyword.biz.PcloudRobotBiz;
import com.pcloud.book.pcloudkeyword.biz.PcloudRobotClassifyBiz;
......@@ -1006,4 +1007,9 @@ wechatGroupConsr.sendMessage(JSON.toJSONString(sendFileVO));
public PcloudRobotResponseVO getSelfRobotClassify(String robotId) {
return pcloudRobotDao.getSelfRobotClassify(robotId);
}
@Override
public PcloudRobotDTO getValidPcloudRobotByType(Long robotType) {
return pcloudRobotDao.getValidPcloudRobotByType(robotType);
}
}
package com.pcloud.book.pcloudkeyword.biz.impl;
import com.pcloud.book.base.exception.BookBizException;
import com.pcloud.book.pcloudKeyword.dto.PcloudRobotDTO;
import com.pcloud.book.pcloudKeyword.dto.RobotClassifyDTO;
import com.pcloud.book.pcloudkeyword.biz.PcloudRobotClassifyBiz;
import com.pcloud.book.pcloudkeyword.dao.PcloudClassifyTemplateDao;
import com.pcloud.book.pcloudkeyword.dao.PcloudRobotClassifyDao;
......@@ -22,19 +24,21 @@ import com.pcloud.common.utils.QrcodeUtils;
import com.pcloud.common.utils.ResponseHandleUtil;
import com.pcloud.common.utils.httpclient.UrlUtils;
import com.pcloud.facade.wechat.service.QrcodeService;
import org.apache.commons.collections.MapUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import javax.annotation.Resource;
import lombok.extern.slf4j.Slf4j;
@Service
......@@ -103,6 +107,7 @@ public class PcloudRobotClassifyBizImpl implements PcloudRobotClassifyBiz {
return new PageBeanNew<>(currentPage, numPerPage, 0, new ArrayList<>());
}
List<Long> classifyIds = listClassifyByPage.getRecordList().stream().map(a -> a.getId()).distinct().collect(Collectors.toList());
Map<Long, PcloudRobotDTO> pcloudRobotDTOMap = pcloudRobotDao.getValidPcloudRobotMapByType(classifyIds);
List<PcloudRobotCountDTO> pcloudRobotCount = pcloudRobotDao.getPcloudRobotCount(classifyIds);
Map<String, Integer> robotCountMap = new HashMap<>();
if(!ListUtils.isEmpty(pcloudRobotCount)){
......@@ -119,6 +124,25 @@ public class PcloudRobotClassifyBizImpl implements PcloudRobotClassifyBiz {
if(MapUtils.isNotEmpty(robotCountMap) && robotCountMap.containsKey(qqCountkey)){
pcloudRobotClassifyResponseVO.setQqRobotCount(null==robotCountMap.get(qqCountkey)?0:robotCountMap.get(qqCountkey));
}
if(MapUtils.isNotEmpty(pcloudRobotDTOMap) && pcloudRobotDTOMap.containsKey(pcloudRobotClassifyResponseVO.getId().intValue())){
pcloudRobotClassifyResponseVO.setValidRobotQrcodeUrl(pcloudRobotDTOMap.get(pcloudRobotClassifyResponseVO.getId().intValue()).getQrcodeUrl());
}
}
return listClassifyByPage;
}
@Override
public PageBeanNew<PcloudRobotClassifyResponseVO> listClassifyByPage4Mini(Integer currentPage, Integer numPerPage) {
PageBeanNew<PcloudRobotClassifyResponseVO> listClassifyByPage = pcloudRobotClassifyDao.listPageNew(new PageParam(currentPage, numPerPage), new HashMap<>(), "listClassifyByPage");
if(ListUtils.isEmpty(listClassifyByPage.getRecordList())){
return new PageBeanNew<>(currentPage, numPerPage, 0, new ArrayList<>());
}
List<Long> classifyIds = listClassifyByPage.getRecordList().stream().map(a -> a.getId()).distinct().collect(Collectors.toList());
Map<Long, PcloudRobotDTO> pcloudRobotDTOMap = pcloudRobotDao.getValidPcloudRobotMapByType(classifyIds);
for (PcloudRobotClassifyResponseVO pcloudRobotClassifyResponseVO : listClassifyByPage.getRecordList()) {
if (MapUtils.isNotEmpty(pcloudRobotDTOMap) && pcloudRobotDTOMap.containsKey(pcloudRobotClassifyResponseVO.getId().intValue())) {
pcloudRobotClassifyResponseVO.setValidRobotQrcodeUrl(pcloudRobotDTOMap.get(pcloudRobotClassifyResponseVO.getId().intValue()).getQrcodeUrl());
}
}
return listClassifyByPage;
}
......@@ -174,4 +198,9 @@ public class PcloudRobotClassifyBizImpl implements PcloudRobotClassifyBiz {
log.error("error啦啦啦啦啦啦啦啦啦拉拉阿拉啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦拉拉阿拉啦啦啦啦啦啦");
}
@Override
public RobotClassifyDTO getClassifyInfo(Long robotType) {
return pcloudRobotClassifyDao.getClassifyInfo(robotType);
}
}
package com.pcloud.book.pcloudkeyword.dao;
import com.pcloud.book.pcloudKeyword.dto.RobotClassifyDTO;
import com.pcloud.book.pcloudkeyword.entity.PcloudRobotClassify;
import com.pcloud.book.pcloudkeyword.facade.response.PcloudRobotClassifyResponseVO;
import com.pcloud.book.pcloudkeyword.vo.ClassifySeqNumUpdateVO;
......@@ -22,4 +23,6 @@ public interface PcloudRobotClassifyDao extends BaseDao<PcloudRobotClassify> {
void updateSeqNum4RobotClassify(ClassifySeqNumUpdateVO vo);
void updateMiniAppQr(Long id, String url);
RobotClassifyDTO getClassifyInfo(Long robotType);
}
package com.pcloud.book.pcloudkeyword.dao;
import com.pcloud.book.pcloudKeyword.dto.PcloudRobotDTO;
import com.pcloud.book.pcloudKeyword.dto.RobotClassifyDTO;
import com.pcloud.book.pcloudkeyword.dto.PcloudRobotCountDTO;
import com.pcloud.book.pcloudkeyword.entity.PcloudRobot;
......@@ -54,4 +55,8 @@ public interface PcloudRobotDao extends BaseDao<PcloudRobot> {
List<PcloudRobotCountDTO> getPcloudRobotCount(List<Long> classifyIds);
PcloudRobotResponseVO getSelfRobotClassify(String robotId);
PcloudRobotDTO getValidPcloudRobotByType(Long robotType);
Map<Long, PcloudRobotDTO> getValidPcloudRobotMapByType(List<Long> classifyIds);
}
package com.pcloud.book.pcloudkeyword.dao.impl;
import com.pcloud.book.pcloudKeyword.dto.RobotClassifyDTO;
import com.pcloud.book.pcloudkeyword.dao.PcloudRobotClassifyDao;
import com.pcloud.book.pcloudkeyword.entity.PcloudRobotClassify;
import com.pcloud.book.pcloudkeyword.facade.response.PcloudRobotClassifyResponseVO;
......@@ -49,4 +50,9 @@ public class PcloudRobotClassifyDaoImpl extends BaseDaoImpl<PcloudRobotClassify>
map.put("url",url);
this.getSessionTemplate().update(getStatement("updateMiniAppQr"), map);
}
@Override
public RobotClassifyDTO getClassifyInfo(Long robotType) {
return this.getSessionTemplate().selectOne(getStatement("getClassifyInfo"), robotType);
}
}
package com.pcloud.book.pcloudkeyword.dao.impl;
import com.google.common.collect.Maps;
import com.pcloud.book.pcloudKeyword.dto.PcloudRobotDTO;
import com.pcloud.book.pcloudKeyword.dto.RobotClassifyDTO;
import com.pcloud.book.pcloudkeyword.dao.PcloudRobotDao;
import com.pcloud.book.pcloudkeyword.dto.PcloudRobotCountDTO;
......@@ -117,6 +119,15 @@ public class PcloudRobotDaoImpl extends BaseDaoImpl<PcloudRobot> implements Pclo
@Override
public PcloudRobotResponseVO getSelfRobotClassify(String robotId) {
return this.getSessionTemplate().selectOne(this.getStatement("getSelfRobotClassify"), robotId);
}
@Override
public PcloudRobotDTO getValidPcloudRobotByType(Long robotType) {
return this.getSessionTemplate().selectOne(this.getStatement("getValidPcloudRobotByType"), robotType);
}
@Override
public Map<Long, PcloudRobotDTO> getValidPcloudRobotMapByType(List<Long> classifyIds) {
return super.getSqlSession().selectMap(getStatement("getValidPcloudRobotMapByType"), classifyIds,"robotType");
}
}
......@@ -54,13 +54,18 @@ public class PcloudRobotClassifyFacade {
@GetMapping("listClassifyByPage")
public ResponseDto<?> listClassifyByPage(
@RequestHeader("token") @ApiParam("token信息") String token,
@RequestParam("currentPage") Integer currentPage,
@RequestParam("numPerPage") Integer numPerPage) throws BizException, PermissionException {
SessionUtil.getVlaue(token, SessionUtil.PARTY_ID);
return new ResponseDto<>(pcloudRobotClassifyBiz.listClassifyByPage(currentPage, numPerPage));
}
@GetMapping("listClassifyByPage4Mini")
public ResponseDto<?> listClassifyByPage4Mini(
@RequestParam("currentPage") Integer currentPage,
@RequestParam("numPerPage") Integer numPerPage) throws BizException, PermissionException {
return new ResponseDto<>(pcloudRobotClassifyBiz.listClassifyByPage4Mini(currentPage, numPerPage));
}
@GetMapping("getClassifyWelcome")
public ResponseDto<?> getClassifyWelcome(
@RequestHeader("token") @ApiParam("token信息") String token,
......
......@@ -11,14 +11,22 @@ import com.pcloud.common.exceptions.BizException;
import com.pcloud.common.permission.PermissionException;
import com.pcloud.common.utils.SessionUtil;
import com.pcloud.wechatgroup.message.dto.SendTextDTO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
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.List;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
@Api("全平台个人号配置")
@RestController("pcloudRobot")
@RequestMapping("pcloudRobotFacade")
......
......@@ -28,4 +28,10 @@ public class PcloudRobotClassifyResponseVO {
private String planBottomPic;
private Integer qqRobotCount;
private String miniAppContent;
private String validRobotQrcodeUrl;
}
......@@ -4,11 +4,13 @@ import com.pcloud.book.pcloudKeyword.dto.PcloudRobotDTO;
import com.pcloud.book.pcloudKeyword.dto.RobotClassifyDTO;
import com.pcloud.book.pcloudKeyword.service.PcloudRobotService;
import com.pcloud.book.pcloudkeyword.biz.PcloudRobotBiz;
import com.pcloud.book.pcloudkeyword.biz.PcloudRobotClassifyBiz;
import com.pcloud.book.pcloudkeyword.entity.PcloudRobot;
import com.pcloud.book.personalstage.biz.PersonalStageJumpBiz;
import com.pcloud.common.dto.ResponseDto;
import com.pcloud.common.utils.BeanUtils;
import com.pcloud.common.utils.ResponseHandleUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
......@@ -31,6 +33,8 @@ public class PcloudRobotServiceImpl implements PcloudRobotService {
@Autowired
private PersonalStageJumpBiz personalStageJumpBiz;
@Autowired
private PcloudRobotClassifyBiz pcloudRobotClassifyBiz;
@Override
@PostMapping("getRobotClassifyBatch")
......@@ -113,4 +117,18 @@ public class PcloudRobotServiceImpl implements PcloudRobotService {
pcloudRobotBiz.handleMiniAppQr();
}
@Override
@GetMapping("getValidPcloudRobotByType")
public ResponseEntity<ResponseDto<PcloudRobotDTO>> getValidPcloudRobotByType(Long robotType) {
PcloudRobotDTO pcloudRobotDTO = pcloudRobotBiz.getValidPcloudRobotByType(robotType);
return ResponseHandleUtil.toResponse(pcloudRobotDTO);
}
@Override
@GetMapping("getClassifyInfo")
public ResponseEntity<ResponseDto<RobotClassifyDTO>> getClassifyInfo(Long robotType) {
return ResponseHandleUtil.toResponse(pcloudRobotClassifyBiz.getClassifyInfo(robotType));
}
}
......@@ -17,18 +17,18 @@
password="LGSC2016.lgsc"/>
<javaModelGenerator targetPackage="com.pcloud.book"
targetProject="C:\project\rays\个人中心\pcloud-book\pcloud-service-book\src\main\java">
targetProject="C:\project\rays\个人中心\pcloud-book\pcloud-service-book\src\main\resource">
<property name="enableSubPackages" value="true"/>
<property name="trimStrings" value="true"/>
</javaModelGenerator>
<sqlMapGenerator targetPackage="com.pcloud.book"
targetProject="C:\project\rays\个人中心\pcloud-book\pcloud-service-book\src\main\java">
targetProject="C:\project\rays\个人中心\pcloud-book\pcloud-service-book\src\main\resource">
<property name="enableSubPackages" value="true"/>
</sqlMapGenerator>
<javaClientGenerator targetPackage="com.pcloud.book"
targetProject="C:\project\rays\个人中心\pcloud-book\pcloud-service-book\src\main\java" type="XMLMAPPER">
targetProject="C:\project\rays\个人中心\pcloud-book\pcloud-service-book\src\main\resource" type="XMLMAPPER">
<property name="enableSubPackages" value="true"/>
</javaClientGenerator>
......@@ -38,7 +38,7 @@
selectByExampleQueryId="false">
</table>-->
<table tableName="personal_share_template" domainObjectName="PersonalShareTemplate"
<table tableName="mini_user_classify" domainObjectName="MiniUserClassify"
enableCountByExample="false" enableUpdateByExample="false"
enableDeleteByExample="false" enableSelectByExample="false"
selectByExampleQueryId="false">
......
......@@ -407,4 +407,37 @@
where
r.wx_id = #{robotId}
</select>
<select id="getValidPcloudRobotByType" parameterType="long" resultType="com.pcloud.book.pcloudKeyword.dto.PcloudRobotDTO">
select
wx_id wxId,
nick_name nickName,
robot_type robotType,
qrcode_url qrcodeUrl
from
pcloud_robot
where
robot_type = #{robotType}
and state = 1
and real_status = 1
limit 1
</select>
<select id="getValidPcloudRobotMapByType" parameterType="list" resultType="com.pcloud.book.pcloudKeyword.dto.PcloudRobotDTO">
select
wx_id wxId,
nick_name nickName,
robot_type robotType,
qrcode_url qrcodeUrl
from
pcloud_robot
where
robot_type in
<foreach collection="list" index="index" item="item" open="(" separator="," close=")">
#{item}
</foreach>
and state = 1
and real_status = 1
group by robot_type
</select>
</mapper>
\ No newline at end of file
......@@ -19,6 +19,7 @@
<result column="classify_name" property="classifyName" jdbcType="VARCHAR" />
<result column="qrcode_url" property="qrcodeUrl" jdbcType="VARCHAR" />
<result column="seq_num" property="seqNum" jdbcType="INTEGER"/>
<result column="mini_app_content" property="miniAppContent" jdbcType="VARCHAR"/>
<!-- <association property="robotCount" column="id" fetchType="eager"
select="com.pcloud.book.pcloudkeyword.dao.impl.PcloudRobotDaoImpl.getRobotCountByClassifyId" />-->
</resultMap>
......@@ -78,7 +79,7 @@
<select id="listClassifyByPage" resultMap="pageResultMap">
select
id, classify_name, qrcode_url, seq_num, mimi_app_qr miniAppQr
id, classify_name, qrcode_url, seq_num, mimi_app_qr miniAppQr,mini_app_content
from pcloud_robot_classify
where is_delete = 0
order by seq_num
......@@ -105,4 +106,16 @@
<update id="updateMiniAppQr" parameterType="map">
update pcloud_robot_classify set mimi_app_qr = #{url} where id = id
</update>
<select id="getClassifyInfo" parameterType="long" resultType="com.pcloud.book.pcloudKeyword.dto.RobotClassifyDTO">
select
id classifyId,
classify_name classifyName,
qrcode_url qrcodeUrl
from
pcloud_robot_classify
where
id = #{robotType}
</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