Commit a5a5a005 by 裴大威

Merge branch 'feat-1002315' into 'master'

加入口二维码

See merge request rays/pcloud-book!370
parents 776317fd 3bc88a5b
......@@ -21,4 +21,6 @@ public interface PcloudRobotBiz {
void sendWelcomeReply(String robotWxId, String userWxId, String ip);
void relateKeywordClassify(Long pcloudRobotId, Long keywordClassifyId);
PcloudRobot getPcloudRobotByType(Integer robotType);
}
......@@ -6,20 +6,24 @@ import com.pcloud.book.keywords.enums.ReplyTypeEnum;
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.PcloudRobotQrcodeDao;
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.PcloudRobotQrcode;
import com.pcloud.book.pcloudkeyword.entity.PcloudRobotWelcome;
import com.pcloud.book.pcloudkeyword.enums.WelcomeReplyTypeEnum;
import com.pcloud.common.core.aspect.ParamLog;
import com.pcloud.common.page.PageBeanNew;
import com.pcloud.common.page.PageParam;
import com.pcloud.common.utils.ListUtils;
import com.pcloud.common.utils.QrcodeUtils;
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 org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
......@@ -36,6 +40,10 @@ public class PcloudRobotBizImpl implements PcloudRobotBiz {
private ResourceConsr resourceConsr;
@Autowired
private PcloudKeywordClassifyDao pcloudKeywordClassifyDao;
@Autowired
private PcloudRobotQrcodeDao pcloudRobotQrcodeDao;
@Value("${wechat.group.link.prefix}")
private String wechatLinkPrefix;
@Override
@Transactional(rollbackFor = Exception.class)
......@@ -47,6 +55,18 @@ public class PcloudRobotBizImpl implements PcloudRobotBiz {
@Transactional(rollbackFor = Exception.class)
public void updatePcloudRobot(PcloudRobot pcloudRobot) {
pcloudRobotDao.update(pcloudRobot);
if(pcloudRobot.getRobotType() != null) {
PcloudRobotQrcode robotQrcode = pcloudRobotQrcodeDao.getByRobotType(pcloudRobot.getRobotType());
if(robotQrcode == null) {
PcloudRobotQrcode pcloudRobotQrcode = new PcloudRobotQrcode();
pcloudRobotQrcode.setRobotType(pcloudRobot.getRobotType());
String linkUrl = wechatLinkPrefix + "/group/info?classify_id=" + pcloudRobot.getRobotType();
String codeUrl = QrcodeUtils.create(linkUrl);
pcloudRobotQrcode.setLinkUrl(linkUrl);
pcloudRobotQrcode.setQrcodeUrl(codeUrl);
pcloudRobotQrcodeDao.insert(pcloudRobotQrcode);
}
}
List<PcloudRobotWelcome> robotWelcomeList = pcloudRobot.getRobotWelcomeList();
pcloudRobotWelcomeDao.deleteByPcloudRobotId(pcloudRobot.getId());
if (ListUtils.isEmpty(robotWelcomeList)){
......@@ -72,6 +92,12 @@ public class PcloudRobotBizImpl implements PcloudRobotBiz {
PcloudKeywordClassify pcloudKeywordClassify = pcloudKeywordClassifyDao.getById(pcloudRobot.getKeywordClassifyId());
pcloudRobot.setKeywordClassifyName(pcloudKeywordClassify == null ? "" : pcloudKeywordClassify.getKeywordClassify());
}
if(pcloudRobot.getRobotType() != null) {
PcloudRobotQrcode robotQrcode = pcloudRobotQrcodeDao.getByRobotType(pcloudRobot.getRobotType());
pcloudRobot.setEntryQrcodeUrl(robotQrcode == null ? "" : robotQrcode.getQrcodeUrl());
} else {
pcloudRobot.setEntryQrcodeUrl("");
}
}
return pageBeanNew;
}
......@@ -149,6 +175,11 @@ public class PcloudRobotBizImpl implements PcloudRobotBiz {
pcloudRobotDao.update(pcloudRobot);
}
@Override
public PcloudRobot getPcloudRobotByType(Integer robotType) {
return pcloudRobotDao.getPcloudRobotByType(robotType);
}
@ParamLog("填充欢迎语回复")
private void fillRobotWelcome(List<PcloudRobotWelcome> robotWelcomeList) {
if(ListUtils.isEmpty(robotWelcomeList)){
......
......@@ -7,4 +7,5 @@ public interface PcloudRobotDao extends BaseDao<PcloudRobot> {
PcloudRobot getByWxId(String wxId);
PcloudRobot getPcloudRobotByType(Integer robotType);
}
package com.pcloud.book.pcloudkeyword.dao;
import com.pcloud.book.pcloudkeyword.entity.PcloudRobotQrcode;
import com.pcloud.common.core.dao.BaseDao;
public interface PcloudRobotQrcodeDao extends BaseDao<PcloudRobotQrcode> {
PcloudRobotQrcode getByRobotType(Integer robotType);
}
......@@ -12,4 +12,9 @@ public class PcloudRobotDaoImpl extends BaseDaoImpl<PcloudRobot> implements Pclo
public PcloudRobot getByWxId(String wxId) {
return super.getSqlSession().selectOne(getStatement("getByWxId"), wxId);
}
@Override
public PcloudRobot getPcloudRobotByType(Integer robotType) {
return super.getSqlSession().selectOne(getStatement("getPcloudRobotByType"), robotType);
}
}
package com.pcloud.book.pcloudkeyword.dao.impl;
import com.pcloud.book.pcloudkeyword.dao.PcloudRobotQrcodeDao;
import com.pcloud.book.pcloudkeyword.entity.PcloudRobotQrcode;
import com.pcloud.common.core.dao.BaseDaoImpl;
import org.springframework.stereotype.Component;
@Component("pcloudRobotQrcodeDao")
public class PcloudRobotQrcodeDaoImpl extends BaseDaoImpl<PcloudRobotQrcode> implements PcloudRobotQrcodeDao {
@Override
public PcloudRobotQrcode getByRobotType(Integer robotType) {
return super.getSqlSession().selectOne(getStatement("getByRobotType"), robotType);
}
}
......@@ -32,6 +32,9 @@ public class PcloudRobot extends BaseEntity {
@ApiModelProperty("关键词分类名称")
private String keywordClassifyName;
@ApiModelProperty("入口二维码url")
private String entryQrcodeUrl;
@ApiModelProperty("状态:1 在线 2 离线")
private Integer state;
......
package com.pcloud.book.pcloudkeyword.entity;
import com.pcloud.common.entity.BaseEntity;
import io.swagger.annotations.ApiModel;
import lombok.Data;
@Data
@ApiModel("全平台小号入口二维码")
public class PcloudRobotQrcode extends BaseEntity {
private Integer robotType;
private String linkUrl;
private String qrcodeUrl;
}
......@@ -91,4 +91,12 @@ public class PcloudRobotFacade {
return new ResponseDto<>();
}
@ApiOperation("根据类型获取全平台个人号信息")
@GetMapping("/getPcloudRobotByType")
ResponseDto<?> getPcloudRobotByType(
@RequestParam("robotType") Integer robotType
) throws BizException, PermissionException{
return new ResponseDto<>(pcloudRobotBiz.getPcloudRobotByType(robotType));
}
}
......@@ -116,4 +116,11 @@
limit 1
</select>
<select id="getPcloudRobotByType" parameterType="Integer" resultMap="BaseResultMap">
select <include refid="Base_Column_List"/>
from pcloud_robot
where robot_type = #{robotType}
limit 1
</select>
</mapper>
\ No newline at end of file
<?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.PcloudRobotQrcodeDaoImpl" >
<resultMap id="BaseResultMap" type="PcloudRobotQrcode" >
<id column="id" jdbcType="BIGINT" property="id" />
<result column="robot_type" jdbcType="INTEGER" property="robotType" />
<result column="link_url" jdbcType="VARCHAR" property="linkUrl" />
<result column="qrcode_url" jdbcType="VARCHAR" property="qrcodeUrl" />
</resultMap>
<sql id="Base_Column_List" >
id, robot_type, link_url, qrcode_url
</sql>
<insert id="insert" parameterType="PcloudRobotQrcode" useGeneratedKeys="true" keyProperty="id">
insert into pcloud_robot_qrcode (
robot_type,
link_url,
qrcode_url
)
values (
#{robotType,jdbcType=INTEGER},
#{linkUrl,jdbcType=VARCHAR},
#{qrcodeUrl,jdbcType=VARCHAR}
)
</insert>
<select id="getByRobotType" parameterType="int" resultMap="BaseResultMap">
select <include refid="Base_Column_List"/>
from pcloud_robot_qrcode
where robot_type = #{robotType}
limit 1
</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