Commit 10bf6083 by 阮思源

Merge branch 'feat-1002308-2' into 'master'

小号关键词关联

See merge request rays/pcloud-book!368
parents bcf7dd9b 3f819a7a
...@@ -64,10 +64,12 @@ import com.pcloud.book.pcloudkeyword.dao.PcloudKeywordClassifyDao; ...@@ -64,10 +64,12 @@ import com.pcloud.book.pcloudkeyword.dao.PcloudKeywordClassifyDao;
import com.pcloud.book.pcloudkeyword.dao.PcloudKeywordDao; import com.pcloud.book.pcloudkeyword.dao.PcloudKeywordDao;
import com.pcloud.book.pcloudkeyword.dao.PcloudKeywordReplyDao; import com.pcloud.book.pcloudkeyword.dao.PcloudKeywordReplyDao;
import com.pcloud.book.pcloudkeyword.dao.PcloudNotKeywordDao; import com.pcloud.book.pcloudkeyword.dao.PcloudNotKeywordDao;
import com.pcloud.book.pcloudkeyword.dao.PcloudRobotDao;
import com.pcloud.book.pcloudkeyword.entity.PcloudKeyword; import com.pcloud.book.pcloudkeyword.entity.PcloudKeyword;
import com.pcloud.book.pcloudkeyword.entity.PcloudKeywordClassify; import com.pcloud.book.pcloudkeyword.entity.PcloudKeywordClassify;
import com.pcloud.book.pcloudkeyword.entity.PcloudKeywordReply; import com.pcloud.book.pcloudkeyword.entity.PcloudKeywordReply;
import com.pcloud.book.pcloudkeyword.entity.PcloudNotKeyword; import com.pcloud.book.pcloudkeyword.entity.PcloudNotKeyword;
import com.pcloud.book.pcloudkeyword.entity.PcloudRobot;
import com.pcloud.book.pcloudkeyword.enums.KeywordTypeEnum; import com.pcloud.book.pcloudkeyword.enums.KeywordTypeEnum;
import com.pcloud.book.pcloudkeyword.enums.MethodEnum; import com.pcloud.book.pcloudkeyword.enums.MethodEnum;
import com.pcloud.book.pcloudkeyword.enums.RelevanceTypeEnum; import com.pcloud.book.pcloudkeyword.enums.RelevanceTypeEnum;
...@@ -208,6 +210,8 @@ public class BookKeywordBizImpl implements BookKeywordBiz { ...@@ -208,6 +210,8 @@ public class BookKeywordBizImpl implements BookKeywordBiz {
private PcloudNotKeywordDao pcloudNotKeywordDao; private PcloudNotKeywordDao pcloudNotKeywordDao;
@Autowired @Autowired
private PcloudKeywordClassifyDao pcloudKeywordClassifyDao; private PcloudKeywordClassifyDao pcloudKeywordClassifyDao;
@Autowired
private PcloudRobotDao pcloudRobotDao;
/** /**
* 字符串切割长度 * 字符串切割长度
*/ */
...@@ -540,19 +544,12 @@ public class BookKeywordBizImpl implements BookKeywordBiz { ...@@ -540,19 +544,12 @@ public class BookKeywordBizImpl implements BookKeywordBiz {
this.sendKeywordMessageToGroup(sendTextDTO); this.sendKeywordMessageToGroup(sendTextDTO);
return; return;
} }
//TODO 判断是否是平台端配置的小号,因为还没有上,先写死,关闭 //判断是否是平台端配置的小号,如果是,走平台端
Boolean isPcloudRobot=false; PcloudRobot pcloudRobot = pcloudRobotDao.getByWxId(sendTextDTO.getWxId());
if ("test".equalsIgnoreCase(envStr) && "wxid_zus32xb5ukjn22".equals(sendTextDTO.getWxId())){ if (pcloudRobot!=null){
isPcloudRobot = true; sendPcloudKeyword(sendTextDTO,pcloudRobot);
}
if ("uat".equalsIgnoreCase(envStr) && "wxid_fadtd2q58njx12".equals(sendTextDTO.getWxId())){
isPcloudRobot = true;
}
if (isPcloudRobot){
sendPcloudKeyword(sendTextDTO);
return; return;
} }
if (SendMessageTypeEnum.SELF.getCode().equals(sendTextDTO.getCode())) { if (SendMessageTypeEnum.SELF.getCode().equals(sendTextDTO.getCode())) {
// 小睿对话索要出版社信息 // 小睿对话索要出版社信息
boolean _continue = replySelfKeywordTemplate(sendTextDTO); boolean _continue = replySelfKeywordTemplate(sendTextDTO);
...@@ -652,15 +649,15 @@ public class BookKeywordBizImpl implements BookKeywordBiz { ...@@ -652,15 +649,15 @@ public class BookKeywordBizImpl implements BookKeywordBiz {
} }
@ParamLog("发送平台端小号的") @ParamLog("发送平台端小号的")
private void sendPcloudKeyword(SendTextDTO sendTextDTO) { private void sendPcloudKeyword(SendTextDTO sendTextDTO,PcloudRobot pcloudRobot) {
String userWxId = sendTextDTO.getWechatUserId(); String userWxId = sendTextDTO.getWechatUserId();
String ip = sendTextDTO.getIp(); String ip = sendTextDTO.getIp();
Integer code = sendTextDTO.getCode(); Integer code = sendTextDTO.getCode();
String robotId = sendTextDTO.getWxId(); String robotId = sendTextDTO.getWxId();
//TODO 获取小号对应的分类Id,个人号配置该没有,先写,后面改 Long pcloudClassifyId=pcloudRobot.getKeywordClassifyId();
Long pcloudClassifyId=1L;
PcloudKeywordClassify pcloudKeywordClassify = pcloudKeywordClassifyDao.getById(pcloudClassifyId); PcloudKeywordClassify pcloudKeywordClassify = pcloudKeywordClassifyDao.getById(pcloudClassifyId);
if (null == pcloudKeywordClassify || !pcloudKeywordClassify.getOpen()){//分类未启用 if (null == pcloudKeywordClassify || !pcloudKeywordClassify.getOpen()){//分类未启用
log.info("查询小号关键词分类为空或未启用sendTextDTO="+sendTextDTO.toString()+"pcloudRobot="+pcloudRobot.toString());
return; return;
} }
String content=sendTextDTO.getTextContent(); String content=sendTextDTO.getTextContent();
...@@ -673,6 +670,7 @@ public class BookKeywordBizImpl implements BookKeywordBiz { ...@@ -673,6 +670,7 @@ public class BookKeywordBizImpl implements BookKeywordBiz {
} }
if (pcloudKeyword!=null){ if (pcloudKeyword!=null){
//走关键词 //走关键词
log.info("查询平台端关键词"+pcloudKeyword.toString());
List<PcloudKeywordReply> replies = pcloudKeywordReplyDao.getByRelevance(RelevanceTypeEnum.KEYWORD.value, pcloudKeyword.getId()); List<PcloudKeywordReply> replies = pcloudKeywordReplyDao.getByRelevance(RelevanceTypeEnum.KEYWORD.value, pcloudKeyword.getId());
if (MethodEnum.RANDOM.value.equals(pcloudKeyword.getMethod())){ if (MethodEnum.RANDOM.value.equals(pcloudKeyword.getMethod())){
int a= (int) Math.floor(Math.random()*replies.size()); int a= (int) Math.floor(Math.random()*replies.size());
......
...@@ -10,6 +10,8 @@ public interface PcloudRobotBiz { ...@@ -10,6 +10,8 @@ public interface PcloudRobotBiz {
void createPcloudRobot(PcloudRobot pcloudRobot); void createPcloudRobot(PcloudRobot pcloudRobot);
void updatePcloudRobot(PcloudRobot pcloudRobot);
PageBeanNew<PcloudRobot> getPcloudRobotList(String nickName, Integer currentPage, Integer numPerPage); PageBeanNew<PcloudRobot> getPcloudRobotList(String nickName, Integer currentPage, Integer numPerPage);
void batchUpdatePcloudRobotWelcome(List<PcloudRobotWelcome> robotWelcomeList); void batchUpdatePcloudRobotWelcome(List<PcloudRobotWelcome> robotWelcomeList);
...@@ -18,4 +20,5 @@ public interface PcloudRobotBiz { ...@@ -18,4 +20,5 @@ public interface PcloudRobotBiz {
void sendWelcomeReply(String robotWxId, String userWxId, String ip); void sendWelcomeReply(String robotWxId, String userWxId, String ip);
void relateKeywordClassify(Long pcloudRobotId, Long keywordClassifyId);
} }
...@@ -4,8 +4,10 @@ import com.pcloud.book.base.exception.BookBizException; ...@@ -4,8 +4,10 @@ import com.pcloud.book.base.exception.BookBizException;
import com.pcloud.book.consumer.content.ResourceConsr; import com.pcloud.book.consumer.content.ResourceConsr;
import com.pcloud.book.keywords.enums.ReplyTypeEnum; import com.pcloud.book.keywords.enums.ReplyTypeEnum;
import com.pcloud.book.pcloudkeyword.biz.PcloudRobotBiz; import com.pcloud.book.pcloudkeyword.biz.PcloudRobotBiz;
import com.pcloud.book.pcloudkeyword.dao.PcloudKeywordClassifyDao;
import com.pcloud.book.pcloudkeyword.dao.PcloudRobotDao; import com.pcloud.book.pcloudkeyword.dao.PcloudRobotDao;
import com.pcloud.book.pcloudkeyword.dao.PcloudRobotWelcomeDao; import com.pcloud.book.pcloudkeyword.dao.PcloudRobotWelcomeDao;
import com.pcloud.book.pcloudkeyword.entity.PcloudKeywordClassify;
import com.pcloud.book.pcloudkeyword.entity.PcloudRobot; import com.pcloud.book.pcloudkeyword.entity.PcloudRobot;
import com.pcloud.book.pcloudkeyword.entity.PcloudRobotWelcome; import com.pcloud.book.pcloudkeyword.entity.PcloudRobotWelcome;
import com.pcloud.book.pcloudkeyword.enums.WelcomeReplyTypeEnum; import com.pcloud.book.pcloudkeyword.enums.WelcomeReplyTypeEnum;
...@@ -32,13 +34,28 @@ public class PcloudRobotBizImpl implements PcloudRobotBiz { ...@@ -32,13 +34,28 @@ public class PcloudRobotBizImpl implements PcloudRobotBiz {
private PcloudRobotWelcomeDao pcloudRobotWelcomeDao; private PcloudRobotWelcomeDao pcloudRobotWelcomeDao;
@Autowired @Autowired
private ResourceConsr resourceConsr; private ResourceConsr resourceConsr;
@Autowired
private PcloudKeywordClassifyDao pcloudKeywordClassifyDao;
@Override @Override
@Transactional(rollbackFor = Exception.class)
public void createPcloudRobot(PcloudRobot pcloudRobot) { public void createPcloudRobot(PcloudRobot pcloudRobot) {
pcloudRobotDao.insert(pcloudRobot); pcloudRobotDao.insert(pcloudRobot);
} }
@Override @Override
@Transactional(rollbackFor = Exception.class)
public void updatePcloudRobot(PcloudRobot pcloudRobot) {
pcloudRobotDao.update(pcloudRobot);
List<PcloudRobotWelcome> robotWelcomeList = pcloudRobot.getRobotWelcomeList();
pcloudRobotWelcomeDao.deleteByPcloudRobotId(pcloudRobot.getId());
if (ListUtils.isEmpty(robotWelcomeList)){
return;
}
pcloudRobotWelcomeDao.batchInsert(robotWelcomeList);
}
@Override
@ParamLog @ParamLog
public PageBeanNew<PcloudRobot> getPcloudRobotList(String nickName, Integer currentPage, Integer numPerPage) { public PageBeanNew<PcloudRobot> getPcloudRobotList(String nickName, Integer currentPage, Integer numPerPage) {
if (currentPage == null || currentPage < 0 || numPerPage == null || numPerPage <= 0) { if (currentPage == null || currentPage < 0 || numPerPage == null || numPerPage <= 0) {
...@@ -51,6 +68,10 @@ public class PcloudRobotBizImpl implements PcloudRobotBiz { ...@@ -51,6 +68,10 @@ public class PcloudRobotBizImpl implements PcloudRobotBiz {
List<PcloudRobotWelcome> robotWelcomeList = pcloudRobotWelcomeDao.getRobotWelcomeListByPcloudRobotId(pcloudRobot.getId()); List<PcloudRobotWelcome> robotWelcomeList = pcloudRobotWelcomeDao.getRobotWelcomeListByPcloudRobotId(pcloudRobot.getId());
fillRobotWelcome(robotWelcomeList); fillRobotWelcome(robotWelcomeList);
pcloudRobot.setRobotWelcomeList(robotWelcomeList); pcloudRobot.setRobotWelcomeList(robotWelcomeList);
if(pcloudRobot.getKeywordClassifyId() != null) {
PcloudKeywordClassify pcloudKeywordClassify = pcloudKeywordClassifyDao.getById(pcloudRobot.getKeywordClassifyId());
pcloudRobot.setKeywordClassifyName(pcloudKeywordClassify == null ? "" : pcloudKeywordClassify.getKeywordClassify());
}
} }
return pageBeanNew; return pageBeanNew;
} }
...@@ -119,6 +140,15 @@ public class PcloudRobotBizImpl implements PcloudRobotBiz { ...@@ -119,6 +140,15 @@ public class PcloudRobotBizImpl implements PcloudRobotBiz {
} }
} }
@Override
@Transactional(rollbackFor = Exception.class)
public void relateKeywordClassify(Long pcloudRobotId, Long keywordClassifyId) {
PcloudRobot pcloudRobot = new PcloudRobot();
pcloudRobot.setId(pcloudRobotId);
pcloudRobot.setKeywordClassifyId(keywordClassifyId);
pcloudRobotDao.update(pcloudRobot);
}
@ParamLog("填充欢迎语回复") @ParamLog("填充欢迎语回复")
private void fillRobotWelcome(List<PcloudRobotWelcome> robotWelcomeList) { private void fillRobotWelcome(List<PcloudRobotWelcome> robotWelcomeList) {
if(ListUtils.isEmpty(robotWelcomeList)){ if(ListUtils.isEmpty(robotWelcomeList)){
......
...@@ -5,4 +5,6 @@ import com.pcloud.common.core.dao.BaseDao; ...@@ -5,4 +5,6 @@ import com.pcloud.common.core.dao.BaseDao;
public interface PcloudRobotDao extends BaseDao<PcloudRobot> { public interface PcloudRobotDao extends BaseDao<PcloudRobot> {
PcloudRobot getByWxId(String wxId);
} }
...@@ -8,4 +8,8 @@ import org.springframework.stereotype.Component; ...@@ -8,4 +8,8 @@ import org.springframework.stereotype.Component;
@Component("pcloudRobotDao") @Component("pcloudRobotDao")
public class PcloudRobotDaoImpl extends BaseDaoImpl<PcloudRobot> implements PcloudRobotDao { public class PcloudRobotDaoImpl extends BaseDaoImpl<PcloudRobot> implements PcloudRobotDao {
@Override
public PcloudRobot getByWxId(String wxId) {
return super.getSqlSession().selectOne(getStatement("getByWxId"), wxId);
}
} }
...@@ -23,6 +23,15 @@ public class PcloudRobot extends BaseEntity { ...@@ -23,6 +23,15 @@ public class PcloudRobot extends BaseEntity {
@ApiModelProperty("二维码url") @ApiModelProperty("二维码url")
private String qrcodeUrl; private String qrcodeUrl;
@ApiModelProperty("个人号类型")
private Integer robotType;
@ApiModelProperty("关键词分类ID")
private Long keywordClassifyId;
@ApiModelProperty("关键词分类名称")
private String keywordClassifyName;
@ApiModelProperty("状态:1 在线 2 离线") @ApiModelProperty("状态:1 在线 2 离线")
private Integer state; private Integer state;
......
...@@ -34,6 +34,17 @@ public class PcloudRobotFacade { ...@@ -34,6 +34,17 @@ public class PcloudRobotFacade {
return new ResponseDto<>(); return new ResponseDto<>();
} }
@ApiOperation("修改全平台机器人")
@PostMapping("/updatePcloudRobot")
ResponseDto<?> updatePcloudRobot(
@RequestHeader("token") @ApiParam("token信息") String token,
@RequestBody @ApiParam("全平台个人号") PcloudRobot pcloudRobot
) throws BizException, PermissionException {
SessionUtil.getVlaue(token, SessionUtil.PARTY_ID);
pcloudRobotBiz.updatePcloudRobot(pcloudRobot);
return new ResponseDto<>();
}
@ApiOperation("获取全平台个人号列表") @ApiOperation("获取全平台个人号列表")
@GetMapping("/getPcloudRobotList") @GetMapping("/getPcloudRobotList")
ResponseDto<?> getPcloudRobotList( ResponseDto<?> getPcloudRobotList(
...@@ -68,5 +79,16 @@ public class PcloudRobotFacade { ...@@ -68,5 +79,16 @@ public class PcloudRobotFacade {
return new ResponseDto<>(pcloudRobotBiz.getPcloudRobot(id)); return new ResponseDto<>(pcloudRobotBiz.getPcloudRobot(id));
} }
@ApiOperation("小号关联关键词分类")
@GetMapping("/relateKeywordClassify")
ResponseDto<?> relateKeywordClassify(
@RequestHeader("token") @ApiParam("token信息") String token,
@RequestParam(value = "pcloudRobotId", required = false) @ApiParam("平台小号ID") Long pcloudRobotId,
@RequestParam(value = "keywordClassifyId", required = false) @ApiParam("关键分类ID") Long keywordClassifyId
) throws BizException, PermissionException{
SessionUtil.getVlaue(token, SessionUtil.PARTY_ID);
pcloudRobotBiz.relateKeywordClassify(pcloudRobotId, keywordClassifyId);
return new ResponseDto<>();
}
} }
...@@ -7,11 +7,13 @@ ...@@ -7,11 +7,13 @@
<result column="nick_name" property="nickName" jdbcType="VARCHAR" /> <result column="nick_name" property="nickName" jdbcType="VARCHAR" />
<result column="head" property="head" jdbcType="VARCHAR" /> <result column="head" property="head" jdbcType="VARCHAR" />
<result column="qrcode_url" property="qrcodeUrl" jdbcType="VARCHAR" /> <result column="qrcode_url" property="qrcodeUrl" jdbcType="VARCHAR" />
<result column="robot_type" jdbcType="INTEGER" property="robotType" />
<result column="keyword_classify_id" jdbcType="BIGINT" property="keywordClassifyId" />
<result column="state" property="state" jdbcType="INTEGER" /> <result column="state" property="state" jdbcType="INTEGER" />
</resultMap> </resultMap>
<sql id="Base_Column_List" > <sql id="Base_Column_List" >
id, wx_id, nick_name, head, qrcode_url, state id, wx_id, nick_name, head, qrcode_url, robot_type, keyword_classify_id, state
</sql> </sql>
<insert id="insert" parameterType="PcloudRobot" useGeneratedKeys="true" keyProperty="id"> <insert id="insert" parameterType="PcloudRobot" useGeneratedKeys="true" keyProperty="id">
...@@ -20,6 +22,8 @@ ...@@ -20,6 +22,8 @@
nick_name, nick_name,
head, head,
qrcode_url, qrcode_url,
robot_type,
keyword_classify_id,
state state
) )
values ( values (
...@@ -27,10 +31,40 @@ ...@@ -27,10 +31,40 @@
#{nickName,jdbcType=VARCHAR}, #{nickName,jdbcType=VARCHAR},
#{head,jdbcType=VARCHAR}, #{head,jdbcType=VARCHAR},
#{qrcodeUrl,jdbcType=VARCHAR}, #{qrcodeUrl,jdbcType=VARCHAR},
#{robotType,jdbcType=INTEGER},
#{keywordClassifyId,jdbcType=BIGINT},
#{state,jdbcType=INTEGER} #{state,jdbcType=INTEGER}
) )
</insert> </insert>
<update id="update" parameterType="PcloudRobot">
update pcloud_robot
<set>
<if test="wxId != null">
wx_id = #{wxId,jdbcType=VARCHAR},
</if>
<if test="nickName != null">
nick_name = #{nickName,jdbcType=VARCHAR},
</if>
<if test="head != null">
head = #{head,jdbcType=VARCHAR},
</if>
<if test="qrcodeUrl != null">
qrcode_url = #{qrcodeUrl,jdbcType=VARCHAR},
</if>
<if test="robotType != null">
robot_type = #{robotType,jdbcType=INTEGER},
</if>
<if test="keywordClassifyId != null">
keyword_classify_id = #{keywordClassifyId,jdbcType=BIGINT},
</if>
<if test="state != null">
state = #{state,jdbcType=INTEGER},
</if>
</set>
where id = #{id,jdbcType=INTEGER}
</update>
<update id="updateState" parameterType="PcloudRobot"> <update id="updateState" parameterType="PcloudRobot">
update pcloud_robot set update pcloud_robot set
state = #{state} state = #{state}
...@@ -76,4 +110,10 @@ ...@@ -76,4 +110,10 @@
limit 1 limit 1
</select> </select>
<select id="getByWxId" parameterType="string" resultMap="BaseResultMap">
select <include refid="Base_Column_List"/>
from pcloud_robot where wx_id = #{wxId}
limit 1
</select>
</mapper> </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