Commit 25c8c3d8 by Administrator

Merge branch 'feature/1003282' into 'master'

feat: [1003282] 小睿入群流程优化-webview公众号长按识别直接入群方案

See merge request rays/pcloud-book!834
parents 31eaeb92 3c7b4798
package com.pcloud.book.group.biz.impl;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSON;
import com.pcloud.book.base.exception.BookBizException;
import com.pcloud.book.consumer.promotion.PromotionConsr;
......@@ -14,6 +15,7 @@ import com.pcloud.book.group.dto.SyncWeixinGroupIdRequestDTO;
import com.pcloud.book.group.dto.UpdateQrDTO;
import com.pcloud.book.group.dto.WeixinQrcodeCountDTO;
import com.pcloud.book.group.dto.WeixinQrcodeDTO;
import com.pcloud.book.group.entity.GroupQrcode;
import com.pcloud.book.group.entity.WeixinQrcode;
import com.pcloud.book.group.entity.WeixinQrcodeGeneration;
import com.pcloud.book.group.enums.JoinGroupTypeEnum;
......@@ -21,6 +23,7 @@ import com.pcloud.book.group.enums.UpdateStatusEnum;
import com.pcloud.book.group.tools.Kit;
import com.pcloud.book.group.tools.QrcodeTools;
import com.pcloud.book.group.tools.SendWeixinRequestTools;
import com.pcloud.book.group.vo.GroupQrcodeBaseInfoVO;
import com.pcloud.book.group.vo.QrStatisticsVO;
import com.pcloud.book.group.vo.WeixinQrcodeVO;
import com.pcloud.book.util.common.ThreadPoolUtils;
......@@ -29,8 +32,11 @@ import com.pcloud.common.core.biz.MessageBiz;
import com.pcloud.common.core.dto.SendEmailDto;
import com.pcloud.common.utils.ListUtils;
import com.pcloud.common.utils.QrcodeUtils;
import com.pcloud.common.utils.ResponseHandleUtil;
import com.pcloud.common.utils.cache.redis.JedisClusterUtils;
import com.pcloud.common.utils.string.StringUtil;
import com.pcloud.facade.wechat.material.dto.GroupNewsMaterialAddDTO;
import com.pcloud.facade.wechat.material.service.MaterialService;
import com.pcloud.wechatgroup.group.dto.GroupRobotDTO;
import com.sdk.wxgroup.AddToGroupVO;
import com.sdk.wxgroup.QrcodeVO;
......@@ -78,6 +84,10 @@ public class WeixinQrcodeBizImpl implements WeixinQrcodeBiz {
private WeixinQrcodeBiz weixinQrcodeBiz;
@Autowired
private WeixinQrcodeGenerationDao weixinQrcodeGenerationDao;
@Value("${system.env}")
private String envStr;
@Autowired
private MaterialService materialService;
@Override
......@@ -194,6 +204,29 @@ public class WeixinQrcodeBizImpl implements WeixinQrcodeBiz {
com.pcloud.promotion.fission.dto.UpdateQrDTO updateQr = new com.pcloud.promotion.fission.dto.UpdateQrDTO();
BeanUtils.copyProperties(updateQrDTO, updateQr);
promotionConsr.updateQrUrl(updateQr);
// 部分群需要更新永久素材
if ("pro".equals(envStr)&&updateQrDTO.getId().equals(41152L)){
updateMediaId(updateQrDTO,66057L,"L6BtF7zqCqBhtLlyVcDtm7_owz_L9ZR9ZAwzxzCZaXw");
}else if ("test".equals(envStr)&&updateQrDTO.getId().equals(29984L)){
updateMediaId(updateQrDTO,50674L,"0VyyKa3G6YER2UJs_GAVV4dow0gLZ2QBeQwuAe1PpP0");
}
}
}
private void updateMediaId(UpdateQrDTO updateQrDTO,Long accountId,String coverMediaId) {
WeixinQrcode qrcode = weixinQrcodeDao.getById(updateQrDTO.getId());
GroupQrcode baseById = groupQrcodeDao.getByWxGroupId(qrcode.getWeixinGroupId());
String mediaId = groupQrcodeDao.getMediaId(baseById.getId());
GroupNewsMaterialAddDTO groupNewsMaterialAddDTO = new GroupNewsMaterialAddDTO();
groupNewsMaterialAddDTO.setAccountId(accountId);
groupNewsMaterialAddDTO.setCoverMediaId(coverMediaId);
groupNewsMaterialAddDTO.setGroupName(baseById.getGroupName());
groupNewsMaterialAddDTO.setQrcodeUrl(updateQrDTO.getUrl());
groupNewsMaterialAddDTO.setMediaId(mediaId);
String mId = ResponseHandleUtil.parseResponse(materialService.getGroupNewsMaterial(groupNewsMaterialAddDTO), String.class);
if (StrUtil.isBlank(mediaId)){
mediaId = mId;
groupQrcodeDao.updateMediaId(baseById.getId(),mediaId);
}
}
......
......@@ -331,4 +331,8 @@ public interface GroupQrcodeDao extends BaseDao<GroupQrcode> {
* @return
*/
List<ESBookGroupQrcode> selectPage(long start, long offset);
String getMediaId(Long id);
void updateMediaId(Long id, String mediaId);
}
......@@ -338,4 +338,19 @@ public class GroupQrcodeDaoImpl extends BaseDaoImpl<GroupQrcode> implements Grou
return getSessionTemplate().selectList("selectPage",map);
}
@Override
public String getMediaId(Long id) {
HashMap<String, Object> map = CollUtil.newHashMap(2);
map.put("id",id);
return getSessionTemplate().selectOne(getStatement("getMediaId"),map);
}
@Override
public void updateMediaId(Long id, String mediaId) {
HashMap<String, Object> map = CollUtil.newHashMap(2);
map.put("id",id);
map.put("mediaId",mediaId);
getSqlSession().update(getStatement("updateMediaId"),map);
}
}
......@@ -93,6 +93,19 @@ public class GroupQrcode extends BaseEntity {
private String qrcodeHeadUrl;
/**
* 公众号永久素材ID
*/
private String mediaId;
public String getMediaId() {
return mediaId;
}
public void setMediaId(String mediaId) {
this.mediaId = mediaId;
}
public String getQrcodeHeadUrl() {
return qrcodeHeadUrl;
}
......@@ -264,6 +277,7 @@ public class GroupQrcode extends BaseEntity {
", createTime=" + createTime +
", updateTime=" + updateTime +
", qrcodeHeadUrl='" + qrcodeHeadUrl + '\'' +
", mediaId='" + mediaId + '\'' +
'}';
}
}
......@@ -19,11 +19,12 @@
<result column="update_time" property="updateTime" jdbcType="TIMESTAMP"/>
<result column="is_delete" property="isDelete" jdbcType="BIT"/>
<result column="riddle_open" property="riddleOpen" jdbcType="BIT"/>
<result column="media_id" property="mediaId" jdbcType="VARCHAR"/>
</resultMap>
<sql id="Base_Column_List">
id,classify_id,group_name,group_seq,user_number,weixin_qrcode_id,weixin_group_id,qrcode_url,use_state,qrcode_state,
create_user,create_time,update_time,is_delete,riddle_open
create_user,create_time,update_time,is_delete,riddle_open,media_id
</sql>
<select id="getGroupUserNum" parameterType="string" resultMap="BaseResultMap">
......@@ -978,4 +979,12 @@
LIMIT #{start},#{offset}
</select>
<select id="getMediaId" parameterType="map" resultType="String">
SELECT media_id FROM book_group_qrcode WHERE id=#{id}
</select>
<update id="updateMediaId" parameterType="map">
UPDATE book_group_qrcode SET media_id = #{mediaId}
WHERE 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