Commit 665c7a4d by 裴大威

feat 更换微信二维码、替换默认欢迎语文案

parent 78b5780f
......@@ -45,6 +45,9 @@ public class BookKeywordResponseVO implements Serializable {
@ApiModelProperty("编辑名称")
private String editorName;
@ApiModelProperty("适用范围(0:所有出版社,1:编辑)")
private Integer scope;
/**
* 商品/应用id
*/
......
......@@ -7,15 +7,15 @@ import com.pcloud.common.core.biz.WeektaskQueueBiz;
import com.pcloud.common.core.constant.WeektaskBehaviorCode;
import com.pcloud.common.core.constant.WeektaskCode;
import com.pcloud.common.core.dto.WeektaskMessageDto;
import com.pcloud.common.exceptions.BizException;
import com.pcloud.raystask.entity.AdviserDefault;
import com.pcloud.raystask.task.service.MainLineService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import com.pcloud.common.exceptions.BizException;
import com.pcloud.raystask.entity.AdviserDefault;
import com.pcloud.raystask.task.service.MainLineService;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
......@@ -61,8 +61,7 @@ public class MainLineConsr {
* 编辑标识
*/
public void sendAddBookTask(Long bookId, Long adviserId) {
EXECUTOR_SERVICE.execute(new Runnable() {
public void run() {
EXECUTOR_SERVICE.execute(() -> {
// 一本书刊
WeektaskMessageDto weektaskMessageDto = new WeektaskMessageDto();
weektaskMessageDto.setWeektaskCode(WeektaskCode.W_ADD_ONE_BOOK);
......@@ -70,7 +69,6 @@ public class MainLineConsr {
weektaskMessageDto.setAdviserId(adviserId);
weektaskMessageDto.setWeektaskBehaviorCode(WeektaskBehaviorCode.STEP_ONE);
weektaskQueueBiz.sendMessageQueue(weektaskMessageDto);
}
});
}
......@@ -83,8 +81,7 @@ public class MainLineConsr {
* 编辑标识
*/
public void sendAddBookGroupTask(Long bookId, Long adviserId) {
EXECUTOR_SERVICE.execute(new Runnable() {
public void run() {
EXECUTOR_SERVICE.execute(() -> {
// 一本书刊
WeektaskMessageDto weektaskMessageDto = new WeektaskMessageDto();
weektaskMessageDto.setWeektaskCode(WeektaskCode.W6_CREATE_BOOK_GROUP);
......@@ -92,7 +89,6 @@ public class MainLineConsr {
weektaskMessageDto.setAdviserId(adviserId);
weektaskMessageDto.setWeektaskBehaviorCode(WeektaskBehaviorCode.STEP_ONE);
weektaskQueueBiz.sendMessageQueue(weektaskMessageDto);
}
});
}
......
......@@ -87,7 +87,9 @@ public class WechatGroupConsr {
return null;
}
try {
return ResponseHandleUtil.parseList(groupMemberService.getWxUserIdsByNickName(nickName), String.class);
final List<String> strings = ResponseHandleUtil.parseList(groupMemberService.getWxUserIdsByNickName(nickName), String.class);
log.info("根据昵称获取微信 strings:{}:" ,strings);
return strings;
} catch (BizException e) {
log.warn("根据昵称获取微信id失败:" + e.getMessage(), e);
throw new BizException(e.getCode(), e.getMessage());
......
......@@ -5,7 +5,9 @@ import com.pcloud.book.group.dto.GroupQrcodeInfoDTO;
import com.pcloud.book.group.entity.GroupQrcode;
import com.pcloud.book.group.vo.ClassifyQrcodeVO;
import com.pcloud.book.group.vo.GroupQrcodeBaseInfoVO;
import com.pcloud.book.group.vo.ListGroupQrcodeResponseVO;
import com.pcloud.book.group.vo.ListQrcodeByClassifyParamVO;
import com.pcloud.book.group.vo.UpdateGroupQrcodeRequestVO;
import com.pcloud.common.page.PageBeanNew;
import java.util.List;
......@@ -18,6 +20,19 @@ import java.util.Map;
public interface GroupQrcodeBiz {
/**
* 测试替换群二维码,不发生产
*/
void updateGroupQrcode(UpdateGroupQrcodeRequestVO vo);
/**
* 测试替换群二维码,不发生产
* @param wxGroupName
* @param currentPage
* @param numPerPage
* @return
*/
PageBeanNew<ListGroupQrcodeResponseVO> listAllGroupQrcode(String wxGroupName, Integer currentPage, Integer numPerPage);
/**
* @Author:lili
* @Desr:新增微信群二维码
* @Date:2019/4/17 17:44
......
package com.pcloud.book.group.biz.impl;
import com.google.common.collect.Maps;
import com.pcloud.book.base.exception.BookBizException;
import com.pcloud.book.consumer.reader.ReaderConsr;
import com.pcloud.book.consumer.user.AdviserConsr;
import com.pcloud.book.consumer.wechatgroup.WechatGroupConsr;
import com.pcloud.book.group.biz.BookGroupClassifyBiz;
import com.pcloud.book.group.biz.GroupAnnouncementBiz;
......@@ -21,7 +23,9 @@ import com.pcloud.book.group.tools.SendWeixinRequestTools;
import com.pcloud.book.group.vo.ClassifyQrcodeVO;
import com.pcloud.book.group.vo.ClassifyVO;
import com.pcloud.book.group.vo.GroupQrcodeBaseInfoVO;
import com.pcloud.book.group.vo.ListGroupQrcodeResponseVO;
import com.pcloud.book.group.vo.ListQrcodeByClassifyParamVO;
import com.pcloud.book.group.vo.UpdateGroupQrcodeRequestVO;
import com.pcloud.book.keywords.dao.BookKeywordRecordDao;
import com.pcloud.book.keywords.dto.KeywordUserCountDTO;
import com.pcloud.book.mq.producer.BookMQProducer;
......@@ -40,11 +44,16 @@ import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import java.math.BigDecimal;
import java.util.*;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.stream.Collectors;
/**
* @author lily
......@@ -71,10 +80,36 @@ public class GroupQrcodeBizImpl implements GroupQrcodeBiz {
private GroupAnnouncementBiz groupAnnouncementBiz;
@Autowired
private PushGroupDao pushGroupDao;
@Autowired
private AdviserConsr adviserConsr;
private static final ExecutorService EXECUTOR_SERVICE = Executors.newFixedThreadPool(5);
@Override
@ParamLog("updateGroupQrcode")
public void updateGroupQrcode(UpdateGroupQrcodeRequestVO vo) {
this.groupQrcodeDao.updateGroupQrcode(vo.getGroupQrcodeId(), vo.getQrcodeUrl(), vo.getUserId());
}
@Override
@ParamLog("listAllGroupQrcode")
public PageBeanNew<ListGroupQrcodeResponseVO> listAllGroupQrcode(String wxGroupName, Integer currentPage, Integer numPerPage) {
PageParam pageParam = new PageParam(currentPage, numPerPage);
final Map<String, Object> map = Maps.newHashMap();
map.put("groupName", StringUtil.isEmpty(wxGroupName) ? null : wxGroupName);
final PageBeanNew<ListGroupQrcodeResponseVO> groupQrcode = this.groupQrcodeDao.listPageNew(pageParam, map, "listAllGroupQrcode");
if (null == groupQrcode || CollectionUtils.isEmpty(groupQrcode.getRecordList())) {
return groupQrcode;
}
final List<Long> adviserIds = groupQrcode.getRecordList().stream().map(ListGroupQrcodeResponseVO::getAdviserId).distinct().collect(Collectors.toList());
final Map<Long, String> names = adviserConsr.getNames(adviserIds);
for (ListGroupQrcodeResponseVO vo : groupQrcode.getRecordList()) {
vo.setAdviserName(names.get(vo.getAdviserId()));
}
return groupQrcode;
}
@Override
@Transactional(rollbackFor = Exception.class)
@ParamLog("新增群二维码")
public Long insert(GroupQrcode groupQrcode) {
......
......@@ -7,6 +7,7 @@ import com.pcloud.book.group.dto.GroupQrcodeInfoDTO;
import com.pcloud.book.group.dto.UpdateQrDTO;
import com.pcloud.book.group.entity.GroupQrcode;
import com.pcloud.book.group.vo.GroupQrcodeBaseInfoVO;
import com.pcloud.book.group.vo.ListGroupQrcodeResponseVO;
import com.pcloud.common.core.dao.BaseDao;
import java.util.List;
......@@ -18,6 +19,9 @@ import java.util.Map;
*/
public interface GroupQrcodeDao extends BaseDao<GroupQrcode> {
void updateGroupQrcode(Long groupQrcodeId, String qrcodeUrl, Long userId);
List<ListGroupQrcodeResponseVO> listAllGroupQrcode(String groupName);
/**
* @Author:lili
* @Desr:根据分类标识删除微信群
......
package com.pcloud.book.group.dao.impl;
import com.google.common.collect.Maps;
import com.pcloud.book.group.dao.GroupQrcodeDao;
import com.pcloud.book.group.dto.ChangeGroupNameDTO;
import com.pcloud.book.group.dto.GroupAndUserNumberDTO;
......@@ -8,6 +10,7 @@ import com.pcloud.book.group.dto.GroupQrcodeInfoDTO;
import com.pcloud.book.group.dto.UpdateQrDTO;
import com.pcloud.book.group.entity.GroupQrcode;
import com.pcloud.book.group.vo.GroupQrcodeBaseInfoVO;
import com.pcloud.book.group.vo.ListGroupQrcodeResponseVO;
import com.pcloud.common.core.dao.BaseDaoImpl;
import org.springframework.stereotype.Component;
......@@ -23,6 +26,20 @@ import java.util.Map;
@Component("groupQrcodeDao")
public class GroupQrcodeDaoImpl extends BaseDaoImpl<GroupQrcode> implements GroupQrcodeDao {
@Override
public void updateGroupQrcode(Long groupQrcodeId, String qrcodeUrl, Long userId) {
final Map<String, Object> map = Maps.newHashMap();
map.put("groupQrcodeId", groupQrcodeId);
map.put("qrcodeUrl", qrcodeUrl);
map.put("userId", userId);
this.getSqlSession().update(this.getStatement("updateGroupQrcode"), map);
}
@Override
public List<ListGroupQrcodeResponseVO> listAllGroupQrcode(String groupName) {
return this.getSqlSession().selectList(this.getStatement("listAllGroupQrcode"), groupName);
}
@Override
public void deleteByClassifyId(Long classifyId) {
this.getSqlSession().update(this.getStatement("deleteByClassifyId"), classifyId);
}
......
......@@ -5,6 +5,7 @@ import com.pcloud.book.group.facade.GroupQrcodeFacade;
import com.pcloud.book.group.vo.ClassifyQrcodeVO;
import com.pcloud.book.group.vo.GroupQrcodeBaseInfoVO;
import com.pcloud.book.group.vo.ListQrcodeByClassifyParamVO;
import com.pcloud.book.group.vo.UpdateGroupQrcodeRequestVO;
import com.pcloud.book.group.vo.WechatGroupNameVO;
import com.pcloud.common.dto.ResponseDto;
import com.pcloud.common.exceptions.BizException;
......@@ -35,6 +36,22 @@ public class GroupQrcodeFacadeImpl implements GroupQrcodeFacade {
@Autowired
private GroupQrcodeBiz groupQrcodeBiz;
@GetMapping("listAllGroupQrcode")
public ResponseDto<PageBeanNew> listAllGroupQrcode(@RequestHeader("token") String token,
@RequestParam(value = "wxGroupName", required = false) String wxGroupName,
@RequestParam("currentPage") Integer currentPage,
@RequestParam("numPerPage") Integer numPerPage) {
return new ResponseDto<>(groupQrcodeBiz.listAllGroupQrcode(wxGroupName, currentPage, numPerPage));
}
@PostMapping("updateGroupQrcode")
public ResponseDto<Void> updateGroupQrcode(@RequestHeader("token") String token, @RequestBody UpdateGroupQrcodeRequestVO vo) throws PermissionException {
Long partyId = (Long) SessionUtil.getVlaue(token, SessionUtil.PARTY_ID);
vo.setUserId(partyId);
groupQrcodeBiz.updateGroupQrcode(vo);
return new ResponseDto<>();
}
@Override
@PostMapping("listQrcodeByClassify")
public ResponseDto<PageBeanNew> listQrcodeByClassify(@RequestHeader("token") String token, @RequestBody ListQrcodeByClassifyParamVO listQrcodeByClassifyParamVO) {
......
......@@ -323,7 +323,7 @@ public class SendWeixinRequestTools {
content += " 欢迎加入" + groupName + "!";
}
if(isHaveKeywords){
content = content + "凭以下关键词领取任务或资源:";
content = content + "本群目的为学习交流和学习辅导,线上资源和工具为图书的增值服务,可根据实际情况配合图书一起使用。凭以下关键词领取任务或资源:";
}
sendTextMessage(content, robotId, weixinGroupId);
}
......
package com.pcloud.book.group.vo;
import java.io.Serializable;
import lombok.Data;
@Data
public class ListGroupQrcodeResponseVO implements Serializable {
private static final long serialVersionUID = -1774513386130221946L;
private Long groupQrcodeId;
private Long adviserId;
private String adviserName;
private String bookName;
private String groupName;
private String groupQrcode;
}
package com.pcloud.book.group.vo;
import com.pcloud.common.entity.BaseRequestVO;
import lombok.Data;
import lombok.EqualsAndHashCode;
@EqualsAndHashCode(callSuper = true)
@Data
public class UpdateGroupQrcodeRequestVO extends BaseRequestVO {
private static final long serialVersionUID = 3548004941763949055L;
private Long groupQrcodeId;
private String qrcodeUrl;
}
......@@ -61,10 +61,13 @@ import java.util.stream.Collectors;
import javax.annotation.Resource;
import lombok.extern.slf4j.Slf4j;
/**
* @author lily
* @date 2019/4/25 10:47
*/
@Slf4j
@Component("bookKeywordBiz")
public class BookKeywordBizImpl implements BookKeywordBiz {
@Autowired
......
......@@ -37,7 +37,7 @@
<select id="listBookKeywordWarehouse" resultType="com.pcloud.book.book.vo.response.BookKeywordResponseVO" parameterType="map">
select
a.id, a.keyword, a.guide, a.matching_rule as matchingRule, editor_id as editorId
a.id, a.keyword, a.guide, a.matching_rule as matchingRule, editor_id as editorId, a.scope
from book_keyword_warehouse a left join book_keyword_warehouse_detail b on a.id = b.keyword_id
where a.is_delete = 0 and b.is_delete = 0
<if test="keyword != null and keyword != '' ">
......
......@@ -251,7 +251,7 @@
c.id,
classify
from
book_group_classify c join book_group_qrcode q on c.id = q.classify_id
book_group_classify c left join book_group_qrcode q on c.id = q.classify_id
where
book_group_id = #{_parameter,jdbcType=BIGINT} and c.is_delete = 0 group by c.id order by sum(user_number) desc, c.id
</select>
......
......@@ -15,6 +15,7 @@
<result column="change_name_state" property="changeNameState" jdbcType="BIGINT"/>
<result column="create_user" property="createUser" jdbcType="BIGINT"/>
<result column="create_time" property="createTime" jdbcType="TIMESTAMP"/>
<result column="update_user" property="updateUser" jdbcType="BIGINT"/>
<result column="update_time" property="updateTime" jdbcType="TIMESTAMP"/>
<result column="is_delete" property="isDelete" jdbcType="BIT"/>
</resultMap>
......@@ -24,6 +25,37 @@
create_user,create_time,update_time,is_delete
</sql>
<update id="updateGroupQrcode" parameterType="map" >
update book_group_qrcode set qrcode_url = #{qrcodeUrl}, update_user = #{updateUser}, update_time = now() where id = #{groupQrcodeId}
</update>
<select id="listAllGroupQrcode" resultType="com.pcloud.book.group.vo.ListGroupQrcodeResponseVO">
SELECT
a.id AS groupQrcodeId,
a.create_user AS adviserId,
a.group_name AS groupName,
a.qrcode_url AS groupQrcode,
c.BOOK_NAME AS bookName
FROM
book_group_qrcode a
LEFT JOIN book_group_classify b ON a.classify_id = b.id
LEFT JOIN book c ON b.book_id = c.BOOK_ID
LEFT JOIN book_group d ON d.id = b.book_group_id
WHERE
a.is_delete = 0
AND b.is_delete = 0
AND c.IS_DELETE = 0
<if test="groupName != null and groupName != '' ">
AND (
a.group_name LIKE CONCAT('%', #{groupName},'%')
or c.BOOK_NAME LIKE CONCAT('%', #{groupName},'%')
or d.group_qrcode_name LIKE CONCAT('%', #{groupName},'%')
)
</if>
order by a.create_time desc
</select>
<insert id="insert" parameterType="GroupQrcode" useGeneratedKeys="true"
keyProperty="id">
insert into book_group_qrcode
......
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