Commit 2c9d26e7 by 章春雨

Merge branch 'feat-1002314' into 'master'

分类模板

See merge request rays/pcloud-book!383
parents 58802795 35713967
......@@ -2,6 +2,7 @@ package com.pcloud.book.guide.vo;
import lombok.Data;
import javax.validation.constraints.Size;
import java.io.Serializable;
@Data
......@@ -9,6 +10,7 @@ public class PcloudGuideMessageVO implements Serializable {
private Integer replyType;
@Size(max = 500)
private String content;
private String picUrl;
......
......@@ -34,7 +34,7 @@ public class PcloudGuideFacadeImpl {
@ApiOperation(value = "新增全平台引导语")
@PostMapping("addPcloudGuide")
ResponseDto<?> addPcloudGuide(@RequestHeader String token, @RequestBody CreatePcloudGuideVO createPcloudGuideVO) throws PermissionException {
ResponseDto<?> addPcloudGuide(@RequestHeader String token, @RequestBody @Validated CreatePcloudGuideVO createPcloudGuideVO) throws PermissionException {
SessionUtil.getToken4Redis(token);
Integer pcloudGuideId = pcloudGuideBiz.addPcloudGuide(createPcloudGuideVO);
return new ResponseDto<>(pcloudGuideId);
......@@ -50,7 +50,7 @@ public class PcloudGuideFacadeImpl {
@ApiOperation(value = "修改引导语")
@PostMapping("updatePcloudGuide")
ResponseDto<?> updatePcloudGuide(@RequestHeader String token, @RequestBody UpdatePcloudGuideVO updatePcloudGuideVO) throws PermissionException {
ResponseDto<?> updatePcloudGuide(@RequestHeader String token, @RequestBody @Validated UpdatePcloudGuideVO updatePcloudGuideVO) throws PermissionException {
SessionUtil.getToken4Redis(token);
pcloudGuideBiz.updatePcloudGuide(updatePcloudGuideVO);
return new ResponseDto<>();
......
package com.pcloud.book.pcloudkeyword.biz;
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;
......@@ -23,4 +24,10 @@ public interface PcloudRobotBiz {
void relateKeywordClassify(Long pcloudRobotId, Long keywordClassifyId);
PcloudRobot getPcloudRobotByType(Integer robotType);
PageBeanNew<PcloudClassifyTemplate> listClassifyTemplate(Integer classifyId, Integer currentPage, Integer numPerPage);
void openTemplate(Integer classifyId, Long templateId);
PcloudClassifyTemplate getTemplateByClassifyId(Integer classifyId);
}
......@@ -4,10 +4,12 @@ import com.pcloud.book.base.exception.BookBizException;
import com.pcloud.book.consumer.content.ResourceConsr;
import com.pcloud.book.guide.mapper.PcloudRobotSilenceMapper;
import com.pcloud.book.pcloudkeyword.biz.PcloudRobotBiz;
import com.pcloud.book.pcloudkeyword.dao.PcloudClassifyTemplateDao;
import com.pcloud.book.pcloudkeyword.dao.PcloudKeywordClassifyDao;
import com.pcloud.book.pcloudkeyword.dao.PcloudRobotDao;
import com.pcloud.book.pcloudkeyword.dao.PcloudRobotQrcodeDao;
import com.pcloud.book.pcloudkeyword.dao.PcloudRobotWelcomeDao;
import com.pcloud.book.pcloudkeyword.entity.PcloudClassifyTemplate;
import com.pcloud.book.pcloudkeyword.entity.PcloudKeywordClassify;
import com.pcloud.book.pcloudkeyword.entity.PcloudRobot;
import com.pcloud.book.pcloudkeyword.entity.PcloudRobotQrcode;
......@@ -20,9 +22,11 @@ import com.pcloud.common.utils.ListUtils;
import com.pcloud.common.utils.QrcodeUtils;
import com.pcloud.common.utils.httpclient.UrlUtils;
import com.pcloud.contentcenter.resource.dto.ResourceDTO;
import com.pcloud.resourcecenter.product.dto.ProductDto;
import com.pcloud.resourcecenter.product.dto.ProductTypeDto;
import com.sdk.wxgroup.*;
import com.sdk.wxgroup.SendFileVO;
import com.sdk.wxgroup.SendMessageTypeEnum;
import com.sdk.wxgroup.SendPicMessageVO;
import com.sdk.wxgroup.SendTextMessageVO;
import com.sdk.wxgroup.WxGroupSDK;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
......@@ -50,6 +54,8 @@ public class PcloudRobotBizImpl implements PcloudRobotBiz {
private String wechatLinkPrefix;
@Autowired
private PcloudRobotSilenceMapper pcloudRobotSilenceMapper;
@Autowired
private PcloudClassifyTemplateDao pcloudClassifyTemplateDao;
@Override
@Transactional(rollbackFor = Exception.class)
......@@ -170,6 +176,17 @@ public class PcloudRobotBizImpl implements PcloudRobotBiz {
WxGroupSDK.sendFile(sendFileVO);
}
}
//发送H5链接
String endUrl = wechatLinkPrefix + "/dialog" + "?book_group_id=" + 0 + "&wxId=" + userWxId + "&robotWxId=" + robotWxId;
String resultUrl = UrlUtils.getShortUrl4Own(endUrl);
String h5Content = "你可以通过点击" + resultUrl + ",或者输入【】内关键词唤醒我\n" + "小睿会在这里时时陪伴你";
SendTextMessageVO sendTextMessageVO = new SendTextMessageVO();
sendTextMessageVO.setContent(h5Content);
sendTextMessageVO.setAltId(robotWxId);
sendTextMessageVO.setWxGroupId(userWxId);
sendTextMessageVO.setIp(ip);
sendTextMessageVO.setCode(SendMessageTypeEnum.SELF.getCode());
WxGroupSDK.sendTextMessage(sendTextMessageVO);
}
}
......@@ -187,6 +204,33 @@ public class PcloudRobotBizImpl implements PcloudRobotBiz {
return pcloudRobotDao.getPcloudRobotByType(robotType);
}
@Override
public PageBeanNew<PcloudClassifyTemplate> listClassifyTemplate(Integer classifyId, Integer currentPage, Integer numPerPage) {
if (currentPage == null || currentPage < 0 || numPerPage == null || numPerPage <= 0) {
throw new BookBizException(BookBizException.PARAM_IS_NULL, "分页参数错误");
}
Map<String, Object> map = new HashMap<>();
map.put("classifyId", classifyId);
return pcloudClassifyTemplateDao.listPageNew(new PageParam(currentPage, numPerPage), map, "listClassifyTemplate");
}
@Override
@Transactional(rollbackFor = Exception.class)
public void openTemplate(Integer classifyId, Long templateId) {
PcloudClassifyTemplate template = new PcloudClassifyTemplate();
template.setClassifyId(classifyId);
template.setIsOpen(false);
pcloudClassifyTemplateDao.updateOpenStateByClassifyId(template);
template.setId(templateId);
template.setIsOpen(true);
pcloudClassifyTemplateDao.updateOpenStateById(template);
}
@Override
public PcloudClassifyTemplate getTemplateByClassifyId(Integer classifyId) {
return pcloudClassifyTemplateDao.getTemplateByClassifyId(classifyId);
}
@ParamLog("填充欢迎语回复")
private void fillRobotWelcome(List<PcloudRobotWelcome> robotWelcomeList) {
if(ListUtils.isEmpty(robotWelcomeList)){
......
package com.pcloud.book.pcloudkeyword.dao;
import com.pcloud.book.pcloudkeyword.entity.PcloudClassifyTemplate;
import com.pcloud.book.pcloudkeyword.entity.PcloudRobotQrcode;
import com.pcloud.common.core.dao.BaseDao;
public interface PcloudClassifyTemplateDao extends BaseDao<PcloudClassifyTemplate> {
PcloudClassifyTemplate getTemplateByClassifyId(Integer classifyId);
void updateOpenStateByClassifyId(PcloudClassifyTemplate template);
void updateOpenStateById(PcloudClassifyTemplate template);
}
package com.pcloud.book.pcloudkeyword.dao.impl;
import com.pcloud.book.pcloudkeyword.dao.PcloudClassifyTemplateDao;
import com.pcloud.book.pcloudkeyword.dao.PcloudRobotQrcodeDao;
import com.pcloud.book.pcloudkeyword.entity.PcloudClassifyTemplate;
import com.pcloud.book.pcloudkeyword.entity.PcloudRobotQrcode;
import com.pcloud.common.core.dao.BaseDaoImpl;
import org.springframework.stereotype.Component;
@Component("pcloudClassifyTemplateDao")
public class PcloudClassifyTemplateDaoImpl extends BaseDaoImpl<PcloudClassifyTemplate> implements PcloudClassifyTemplateDao {
@Override
public PcloudClassifyTemplate getTemplateByClassifyId(Integer classifyId) {
return super.getSqlSession().selectOne(getStatement("getTemplateByClassifyId"), classifyId);
}
@Override
public void updateOpenStateByClassifyId(PcloudClassifyTemplate template) {
super.getSqlSession().update(getStatement("updateOpenStateByClassifyId"), template);
}
@Override
public void updateOpenStateById(PcloudClassifyTemplate template) {
super.getSqlSession().update(getStatement("updateOpenStateById"), template);
}
}
package com.pcloud.book.pcloudkeyword.entity;
import com.pcloud.common.entity.BaseEntity;
import io.swagger.annotations.ApiModel;
import lombok.Data;
@Data
@ApiModel("全平台分类模板")
public class PcloudClassifyTemplate extends BaseEntity {
private Integer classifyId;
private String templateCode;
private Boolean isOpen;
}
......@@ -99,4 +99,35 @@ public class PcloudRobotFacade {
return new ResponseDto<>(pcloudRobotBiz.getPcloudRobotByType(robotType));
}
@ApiOperation("获取全平台分类模板列表")
@GetMapping("/listClassifyTemplate")
ResponseDto<?> listClassifyTemplate(
@RequestHeader("token") @ApiParam("token信息") String token,
@RequestParam(value = "classifyId", required = false) @ApiParam("昵称") Integer classifyId,
@RequestParam("currentPage") Integer currentPage,
@RequestParam("numPerPage") Integer numPerPage
) throws BizException, PermissionException{
SessionUtil.getVlaue(token, SessionUtil.PARTY_ID);
return new ResponseDto<>(pcloudRobotBiz.listClassifyTemplate(classifyId,currentPage,numPerPage));
}
@ApiOperation("小号关联关键词分类")
@GetMapping("/openTemplate")
ResponseDto<?> openTemplate(
@RequestHeader("token") @ApiParam("token信息") String token,
@RequestParam(value = "classifyId", required = false) @ApiParam("分类ID") Integer classifyId,
@RequestParam(value = "templateId", required = false) @ApiParam("模板ID") Long templateId
) throws BizException, PermissionException{
SessionUtil.getVlaue(token, SessionUtil.PARTY_ID);
pcloudRobotBiz.openTemplate(classifyId, templateId);
return new ResponseDto<>();
}
@ApiOperation("根据分类ID获取模板信息")
@GetMapping("/getTemplateByClassifyId")
ResponseDto<?> getTemplateByClassifyId(
@RequestParam("classifyId") Integer classifyId
) throws BizException, PermissionException{
return new ResponseDto<>(pcloudRobotBiz.getTemplateByClassifyId(classifyId));
}
}
<?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.pcloudkeyword.dao.impl.PcloudClassifyTemplateDaoImpl" >
<resultMap id="BaseResultMap" type="PcloudClassifyTemplate" >
<id column="id" jdbcType="BIGINT" property="id" />
<result column="classify_id" jdbcType="INTEGER" property="classifyId" />
<result column="template_code" jdbcType="VARCHAR" property="templateCode" />
<result column="is_open" jdbcType="BIT" property="isOpen" />
</resultMap>
<sql id="Base_Column_List" >
id, classify_id, template_code, is_open
</sql>
<select id="getById" parameterType="long" resultMap="BaseResultMap">
select <include refid="Base_Column_List"/>
from pcloud_classify_template
where id = #{id}
</select>
<select id="getTemplateByClassifyId" parameterType="int" resultMap="BaseResultMap">
select <include refid="Base_Column_List"/>
from pcloud_classify_template
where classify_id = #{classifyId}
and is_open = 1
limit 1
</select>
<select id="listClassifyTemplate" parameterType="map" resultMap="BaseResultMap">
select <include refid="Base_Column_List"/>
from pcloud_classify_template
where 1 = 1
<if test="classifyId != null">
and classify_id = #{classifyId}
</if>
</select>
<update id="updateOpenStateByClassifyId" parameterType="PcloudClassifyTemplate">
update pcloud_classify_template
set
is_open = #{isOpen}
where classify_id = #{classifyId}
</update>
<update id="updateOpenStateById" parameterType="PcloudClassifyTemplate">
update pcloud_classify_template
set
is_open = #{isOpen}
where classify_id = #{classifyId}
and id = #{id}
</update>
</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