Commit 3dc69f86 by 章春雨

Merge branch 'feature-1002281' into 'master'

新增全平台引导语

See merge request rays/pcloud-book!364
parents 1049dcaa d17d0f66
package com.pcloud.book.guide.vo;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
@Data
public class Create4RobotVO implements Serializable {
private String robotWxId;
private List<Integer> pcloudGuideIds;
}
package com.pcloud.book.guide.vo;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
/***
* 新增全平台引导语
*/
@Data
public class CreatePcloudGuideVO implements Serializable {
private List<PcloudGuideMessageVO> messageVOList;
}
package com.pcloud.book.guide.vo;
import lombok.Data;
import java.io.Serializable;
@Data
public class PcloudGuideMessageVO implements Serializable {
private Integer replyType;
private String content;
private String picUrl;
}
package com.pcloud.book.guide.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
@Data
public class PcloudGuideVO implements Serializable {
private Integer pcloudGuideId;
private Integer type;
private Integer timeSpan;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date createTime;
private List<PcloudGuideMessageVO> messageVOList;
private Integer seqNum;
}
package com.pcloud.book.guide.vo;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
/***
* 新增全平台引导语
*/
@Data
public class UpdatePcloudGuideVO implements Serializable {
private List<PcloudGuideMessageVO> messageVOList;
private Integer timeSpan;
private Integer pcloudGuideId;
}
package com.pcloud.book.guide.vo;
import lombok.Data;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
@Data
public class UpdateSeqNumVO implements Serializable {
@NotNull
private Integer pcloudGuideId;
@NotNull
private Integer seqNum;
}
package com.pcloud.book.guide.biz;
import com.pcloud.book.guide.vo.Create4RobotVO;
import com.pcloud.book.guide.vo.CreatePcloudGuideVO;
import com.pcloud.book.guide.vo.PcloudGuideVO;
import com.pcloud.book.guide.vo.UpdatePcloudGuideVO;
import com.pcloud.book.guide.vo.UpdateSeqNumVO;
import com.pcloud.common.page.PageBeanNew;
public interface PcloudGuideBiz {
Integer addPcloudGuide(CreatePcloudGuideVO createPcloudGuideVO);
void deletePcloudGuide(Integer pcloudGuideId);
void updatePcloudGuide(UpdatePcloudGuideVO updatePcloudGuideVO);
PcloudGuideVO getPcloudGuide(Integer pcloudGuideId);
PageBeanNew<PcloudGuideVO> listPcloudGuide(Integer currentPage, Integer numPerPage, String robotWxId, String search);
void updateSeqNum(UpdateSeqNumVO updateSeqNumVO);
void create4Robot(Create4RobotVO create4RobotVO);
}
package com.pcloud.book.guide.biz.impl;
import com.pcloud.book.base.exception.BookBizException;
import com.pcloud.book.guide.biz.PcloudGuideBiz;
import com.pcloud.book.guide.entity.PcloudGuide;
import com.pcloud.book.guide.entity.PcloudGuideMessage;
import com.pcloud.book.guide.mapper.PcloudGuideMapper;
import com.pcloud.book.guide.mapper.PcloudGuideMessageMapper;
import com.pcloud.book.guide.vo.Create4RobotVO;
import com.pcloud.book.guide.vo.CreatePcloudGuideVO;
import com.pcloud.book.guide.vo.PcloudGuideMessageVO;
import com.pcloud.book.guide.vo.PcloudGuideVO;
import com.pcloud.book.guide.vo.UpdatePcloudGuideVO;
import com.pcloud.book.guide.vo.UpdateSeqNumVO;
import com.pcloud.common.page.PageBeanNew;
import com.pcloud.common.utils.BeanUtils;
import com.pcloud.common.utils.ListUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.List;
@Component("pcloudGuideBiz")
public class PcloudGuideBizImpl implements PcloudGuideBiz {
@Autowired
private PcloudGuideMapper pcloudGuideMapper;
@Autowired
private PcloudGuideMessageMapper pcloudGuideMessageMapper;
@Override
@Transactional(rollbackFor = Exception.class)
public Integer addPcloudGuide(CreatePcloudGuideVO createPcloudGuideVO) {
//参数校验
List<PcloudGuideMessageVO> messageVOList = createPcloudGuideVO.getMessageVOList();
if (ListUtils.isEmpty(messageVOList)) {
throw new BookBizException(BookBizException.ERROR, "请添加回复内容");
}
if (messageVOList.size() > 3) {
throw new BookBizException(BookBizException.ERROR, "最多添加3条回复内容");
}
Integer maxSeqNum = pcloudGuideMapper.getMaxSeqNum(null);
PcloudGuide pcloudGuide = new PcloudGuide();
pcloudGuide.setType(0);
pcloudGuide.setRobotWxId(null);
pcloudGuide.setSeqNum(maxSeqNum + 1);
pcloudGuide.setTimeSpan(0);
pcloudGuideMapper.insert(pcloudGuide);
Integer id = pcloudGuide.getId();
List<PcloudGuideMessage> list = new ArrayList<>();
messageVOList.forEach(item -> {
PcloudGuideMessage pcloudGuideMessage = new PcloudGuideMessage();
BeanUtils.copyProperties(item, pcloudGuideMessage);
pcloudGuideMessage.setPcloudGuideId(id);
list.add(pcloudGuideMessage);
});
pcloudGuideMessageMapper.batchInsert(list);
return id;
}
@Override
public void deletePcloudGuide(Integer pcloudGuideId) {
pcloudGuideMapper.deleteByPrimaryKey(pcloudGuideId);
pcloudGuideMessageMapper.deleteByGuideId(pcloudGuideId);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void updatePcloudGuide(UpdatePcloudGuideVO updatePcloudGuideVO) {
PcloudGuide pcloudGuide = pcloudGuideMapper.selectByPrimaryKey(updatePcloudGuideVO.getPcloudGuideId());
if (null == pcloudGuide) {
return;
}
List<PcloudGuideMessageVO> messageVOList = updatePcloudGuideVO.getMessageVOList();
if (ListUtils.isEmpty(messageVOList)) {
throw new BookBizException(BookBizException.ERROR, "请添加回复内容");
}
if (messageVOList.size() > 3) {
throw new BookBizException(BookBizException.ERROR, "最多添加3条回复内容");
}
pcloudGuide.setTimeSpan(updatePcloudGuideVO.getTimeSpan());
pcloudGuideMapper.updateByPrimaryKey(pcloudGuide);
Integer id = pcloudGuide.getId();
List<PcloudGuideMessage> list = new ArrayList<>();
messageVOList.forEach(item -> {
PcloudGuideMessage pcloudGuideMessage = new PcloudGuideMessage();
BeanUtils.copyProperties(item, pcloudGuideMessage);
pcloudGuideMessage.setPcloudGuideId(id);
list.add(pcloudGuideMessage);
});
pcloudGuideMessageMapper.deleteByGuideId(id);
pcloudGuideMessageMapper.batchInsert(list);
}
@Override
public PcloudGuideVO getPcloudGuide(Integer pcloudGuideId) {
PcloudGuideVO pcloudGuideVO = new PcloudGuideVO();
PcloudGuide pcloudGuide = pcloudGuideMapper.selectByPrimaryKey(pcloudGuideId);
if (null != pcloudGuide) {
pcloudGuideVO.setPcloudGuideId(pcloudGuideId);
pcloudGuideVO.setSeqNum(pcloudGuide.getSeqNum());
pcloudGuideVO.setTimeSpan(pcloudGuide.getTimeSpan());
List<PcloudGuideMessageVO> list = pcloudGuideMessageMapper.listByGuideId(pcloudGuideId);
pcloudGuideVO.setMessageVOList(list);
}
return pcloudGuideVO;
}
@Override
public PageBeanNew<PcloudGuideVO> listPcloudGuide(Integer currentPage, Integer numPerPage, String robotWxId, String search) {
Integer count = pcloudGuideMapper.getCount(robotWxId, search);
List<PcloudGuideVO> list = new ArrayList<>();
if (count <= 0) {
return new PageBeanNew<>(currentPage, numPerPage, list);
}
list = pcloudGuideMapper.listPcloudGuide(currentPage * numPerPage, numPerPage, robotWxId, search);
list.forEach(item -> {
item.setMessageVOList(pcloudGuideMessageMapper.listByGuideId(item.getPcloudGuideId()));
});
return new PageBeanNew<>(currentPage, numPerPage, count, list);
}
@Override
public void updateSeqNum(UpdateSeqNumVO updateSeqNumVO) {
pcloudGuideMapper.updateSeqNum(updateSeqNumVO.getPcloudGuideId(), updateSeqNumVO.getSeqNum());
}
@Override
public void create4Robot(Create4RobotVO create4RobotVO) {
List<Integer> pcloudGuideIds = create4RobotVO.getPcloudGuideIds();
for (Integer pcloudGuideId : pcloudGuideIds) {
PcloudGuide pcloudGuide = pcloudGuideMapper.selectByPrimaryKey(pcloudGuideId);
if (null == pcloudGuide) {
continue;
}
String robotWxId = create4RobotVO.getRobotWxId();
Integer maxSeqNum = pcloudGuideMapper.getMaxSeqNum(robotWxId);
pcloudGuide.setType(1);
pcloudGuide.setRobotWxId(robotWxId);
pcloudGuide.setSeqNum(maxSeqNum +1);
pcloudGuideMapper.insert(pcloudGuide);
List<PcloudGuideMessageVO> messageVOList = pcloudGuideMessageMapper.listByGuideId(pcloudGuideId);
List<PcloudGuideMessage> list = new ArrayList<>();
messageVOList.forEach(item -> {
PcloudGuideMessage pcloudGuideMessage = new PcloudGuideMessage();
BeanUtils.copyProperties(item, pcloudGuideMessage);
pcloudGuideMessage.setPcloudGuideId(pcloudGuide.getId());
list.add(pcloudGuideMessage);
});
pcloudGuideMessageMapper.batchInsert(list);
}
}
}
package com.pcloud.book.guide.entity;
import lombok.Data;
import java.util.Date;
@Data
public class PcloudGuide {
private Integer id;
private Integer type;
private Date createTime;
private Date updateTime;
private String robotWxId;
private Integer timeSpan;
private Integer seqNum;
}
\ No newline at end of file
package com.pcloud.book.guide.entity;
import lombok.Data;
import java.util.Date;
@Data
public class PcloudGuideMessage {
private Integer id;
private Integer pcloudGuideId;
private Integer replyType;
private String content;
private String picUrl;
private Date createTime;
private Date updateTime;
}
\ No newline at end of file
package com.pcloud.book.guide.facade.impl;
import com.pcloud.book.guide.biz.PcloudGuideBiz;
import com.pcloud.book.guide.vo.Create4RobotVO;
import com.pcloud.book.guide.vo.CreatePcloudGuideVO;
import com.pcloud.book.guide.vo.PcloudGuideVO;
import com.pcloud.book.guide.vo.UpdatePcloudGuideVO;
import com.pcloud.book.guide.vo.UpdateSeqNumVO;
import com.pcloud.common.dto.ResponseDto;
import com.pcloud.common.page.PageBeanNew;
import com.pcloud.common.permission.PermissionException;
import com.pcloud.common.utils.SessionUtil;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestHeader;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
@RestController("pcloudGuideFacade")
@RequestMapping("pcloudGuide")
public class PcloudGuideFacadeImpl {
@Autowired
private PcloudGuideBiz pcloudGuideBiz;
@ApiOperation(value = "新增全平台引导语")
@PostMapping("addPcloudGuide")
ResponseDto<?> addPcloudGuide(@RequestHeader String token, @RequestBody CreatePcloudGuideVO createPcloudGuideVO) throws PermissionException {
SessionUtil.getToken4Redis(token);
Integer pcloudGuideId = pcloudGuideBiz.addPcloudGuide(createPcloudGuideVO);
return new ResponseDto<>(pcloudGuideId);
}
@ApiOperation(value = "删除引导语")
@GetMapping("deletePcloudGuide")
ResponseDto<?> deletePcloudGuide(@RequestHeader String token, @RequestParam Integer pcloudGuideId) throws PermissionException {
SessionUtil.getToken4Redis(token);
pcloudGuideBiz.deletePcloudGuide(pcloudGuideId);
return new ResponseDto<>();
}
@ApiOperation(value = "修改引导语")
@PostMapping("updatePcloudGuide")
ResponseDto<?> updatePcloudGuide(@RequestHeader String token, @RequestBody UpdatePcloudGuideVO updatePcloudGuideVO) throws PermissionException {
SessionUtil.getToken4Redis(token);
pcloudGuideBiz.updatePcloudGuide(updatePcloudGuideVO);
return new ResponseDto<>();
}
@ApiOperation(value = "获取引导语信息")
@GetMapping("getPcloudGuide")
ResponseDto<?> getPcloudGuide(@RequestParam Integer pcloudGuideId) {
return new ResponseDto<>(pcloudGuideBiz.getPcloudGuide(pcloudGuideId));
}
@ApiOperation(value = "获取引导语列表")
@GetMapping("listPcloudGuide")
ResponseDto<?> listPcloudGuide(@RequestHeader String token, @RequestParam Integer currentPage, @RequestParam Integer numPerPage,
@RequestParam(value = "robotWxId", required = false) String robotWxId, @RequestParam(value = "search", required = false) String search) throws PermissionException {
SessionUtil.getInfoToken4Redis(token);
PageBeanNew<PcloudGuideVO> page = pcloudGuideBiz.listPcloudGuide(currentPage, numPerPage, robotWxId, search);
return new ResponseDto<>(page);
}
@ApiOperation(value = "修改排序值")
@PostMapping("updateSeqNum")
ResponseDto<?> updateSeqNum(@RequestHeader String token, @RequestBody @Validated UpdateSeqNumVO updateSeqNumVO) throws PermissionException {
SessionUtil.getInfoToken4Redis(token);
pcloudGuideBiz.updateSeqNum(updateSeqNumVO);
return new ResponseDto<>();
}
@ApiOperation(value = "新增个人号引导语")
@PostMapping("add4Robot")
ResponseDto<?> add4Robot(@RequestHeader String token, @RequestBody Create4RobotVO create4RobotVO) throws PermissionException {
SessionUtil.getInfoToken4Redis(token);
pcloudGuideBiz.create4Robot(create4RobotVO);
return new ResponseDto<>();
}
}
package com.pcloud.book.guide.mapper;
import com.pcloud.book.guide.entity.PcloudGuide;
import com.pcloud.book.guide.vo.PcloudGuideVO;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Component;
import java.util.List;
@Component
public interface PcloudGuideMapper {
int deleteByPrimaryKey(Integer id);
int insert(PcloudGuide record);
int insertSelective(PcloudGuide record);
PcloudGuide selectByPrimaryKey(Integer id);
int updateByPrimaryKeySelective(PcloudGuide record);
int updateByPrimaryKey(PcloudGuide record);
Integer getMaxSeqNum(@Param("robotWxId") String robotWxId);
Integer getCount(@Param("robotWxId") String robotWxId, @Param("search") String search);
List<PcloudGuideVO> listPcloudGuide(@Param("pageNum") Integer pageNum, @Param("numPerPage") Integer numPerPage,
@Param("robotWxId") String robotWxId, @Param("search") String search);
void updateSeqNum(@Param("id") Integer pcloudGuideId, @Param("seqNum") Integer seqNum);
List<PcloudGuide> listByRobotId(String robotId);
}
\ No newline at end of file
package com.pcloud.book.guide.mapper;
import com.pcloud.book.guide.entity.PcloudGuideMessage;
import com.pcloud.book.guide.vo.PcloudGuideMessageVO;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Component;
import java.util.List;
@Component
public interface PcloudGuideMessageMapper {
int deleteByPrimaryKey(Integer id);
int insert(PcloudGuideMessage record);
int insertSelective(PcloudGuideMessage record);
PcloudGuideMessage selectByPrimaryKey(Integer id);
int updateByPrimaryKeySelective(PcloudGuideMessage record);
int updateByPrimaryKey(PcloudGuideMessage record);
void batchInsert(@Param("list") List<PcloudGuideMessage> list);
void deleteByGuideId(Integer pcloudGuideId);
List<PcloudGuideMessageVO> listByGuideId(Integer pcloudGuideId);
List<PcloudGuideMessageVO> listByRobotId(String robotId);
}
\ No newline at end of file
......@@ -11,7 +11,13 @@ import com.pcloud.book.consumer.wechatgroup.WechatGroupConsr;
import com.pcloud.book.group.biz.BookGroupAppBiz;
import com.pcloud.book.group.biz.BookGroupClassifyBiz;
import com.pcloud.book.group.biz.GroupQrcodeBiz;
import com.pcloud.book.group.dao.*;
import com.pcloud.book.group.dao.AppTouchRecordDao;
import com.pcloud.book.group.dao.BookGroupCipherUserDao;
import com.pcloud.book.group.dao.BookGroupClassifyDao;
import com.pcloud.book.group.dao.BookGroupDao;
import com.pcloud.book.group.dao.BookGroupFriendGuideDao;
import com.pcloud.book.group.dao.GroupQrcodeDao;
import com.pcloud.book.group.dao.JoinGroupCipherDao;
import com.pcloud.book.group.dto.BookGroupDTO;
import com.pcloud.book.group.dto.GroupClassifyQrcodeDTO;
import com.pcloud.book.group.dto.GroupQrcodeDTO;
......@@ -19,27 +25,43 @@ import com.pcloud.book.group.dto.JoinGroupCipherDTO;
import com.pcloud.book.group.dto.PushAddUserMessageDTO;
import com.pcloud.book.group.dto.SendDefaultGuideMessageDTO;
import com.pcloud.book.group.dto.SendGuideMessageDTO;
import com.pcloud.book.group.entity.*;
import com.pcloud.book.group.entity.AppTouchRecord;
import com.pcloud.book.group.entity.BookGroupCipherUser;
import com.pcloud.book.group.entity.BookGroupFriendGuide;
import com.pcloud.book.group.entity.GroupQrcode;
import com.pcloud.book.group.entity.JoinGroupCipher;
import com.pcloud.book.group.enums.CipherTypeEnum;
import com.pcloud.book.group.enums.TouchTypeEnum;
import com.pcloud.book.group.tools.SendWeixinRequestTools;
import com.pcloud.book.group.vo.GroupQrcodeBaseInfoVO;
import com.pcloud.book.guide.entity.PcloudGuide;
import com.pcloud.book.guide.mapper.PcloudGuideMapper;
import com.pcloud.book.guide.mapper.PcloudGuideMessageMapper;
import com.pcloud.book.guide.vo.PcloudGuideMessageVO;
import com.pcloud.book.keywords.biz.BookGuideBiz;
import com.pcloud.book.keywords.biz.BookKeywordBiz;
import com.pcloud.book.keywords.biz.SelfRobotKeywordBiz;
import com.pcloud.book.keywords.dao.*;
import com.pcloud.book.keywords.dao.BookGuideDao;
import com.pcloud.book.keywords.dao.BookGuideReplyDao;
import com.pcloud.book.keywords.dao.KeywordDao;
import com.pcloud.book.keywords.dao.SelfRobotKeywordDao;
import com.pcloud.book.keywords.dao.SelfRobotKeywordReplyDao;
import com.pcloud.book.keywords.dto.GuideDTO;
import com.pcloud.book.keywords.dto.KeywordDTO;
import com.pcloud.book.keywords.dto.KeywordStatusDTO;
import com.pcloud.book.keywords.dto.ReplyKeywordDTO;
import com.pcloud.book.keywords.entity.*;
import com.pcloud.book.keywords.entity.BookGuide;
import com.pcloud.book.keywords.entity.BookGuideReply;
import com.pcloud.book.keywords.entity.Keyword;
import com.pcloud.book.keywords.entity.SelfRobotKeyword;
import com.pcloud.book.keywords.enums.ReplyTypeEnum;
import com.pcloud.book.keywords.vo.GuideVO;
import com.pcloud.book.keywords.vo.ReplyMessageVO;
import com.pcloud.book.keywords.vo.SetGuideVO;
import com.pcloud.book.keywords.vo.UpdateGuideVO;
import com.pcloud.book.pcloudkeyword.biz.PcloudRobotBiz;
import com.pcloud.book.util.common.ThreadPoolUtils;
import com.pcloud.book.pcloudkeyword.dao.PcloudRobotDao;
import com.pcloud.book.pcloudkeyword.entity.PcloudRobot;
import com.pcloud.book.weixinclock.dao.WeixinClockGroupClassifyDao;
import com.pcloud.book.weixinclock.dto.WeixinClockDto;
import com.pcloud.channelcenter.wechat.dto.AccountSettingDto;
......@@ -51,14 +73,14 @@ import com.pcloud.common.utils.httpclient.UrlUtils;
import com.pcloud.common.utils.string.StringUtil;
import com.pcloud.contentcenter.resource.dto.ResourceDTO;
import com.pcloud.wechatgroup.message.dto.AgreeAddUserDTO;
import com.sdk.wxgroup.SendArticleMessageVO;
import com.sdk.wxgroup.SendFileVO;
import com.sdk.wxgroup.SendGroupInviteVO;
import com.sdk.wxgroup.SendMessageTypeEnum;
import com.sdk.wxgroup.SendPicMessageVO;
import com.sdk.wxgroup.SendTextMessageVO;
import com.sdk.wxgroup.WxGroupSDK;
import com.sdk.wxgroup.*;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
......@@ -74,8 +96,6 @@ import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import lombok.extern.slf4j.Slf4j;
/**
* @author lily
* @date 2019/4/23 15:47
......@@ -127,6 +147,12 @@ public class BookGuideBizImpl implements BookGuideBiz {
private SelfRobotKeywordBiz selfRobotKeywordBiz;
@Autowired
private PcloudRobotBiz pcloudRobotBiz;
@Autowired
private PcloudGuideMessageMapper pcloudGuideMessageMapper;
@Autowired
private PcloudRobotDao pcloudRobotDao;
@Autowired
private PcloudGuideMapper pcloudGuideMapper;
@Value("${system.env}")
private String envStr;
......@@ -287,14 +313,49 @@ public class BookGuideBizImpl implements BookGuideBiz {
* @param agreeAddUserDTO
*/
private void sendFriendGuide(Long bookGroupId, AgreeAddUserDTO agreeAddUserDTO) {
List<BookGroupFriendGuide> friendGuideList = bookGroupFriendGuideDao.getListByBookGroupId(bookGroupId);
if (ListUtils.isEmpty(friendGuideList)){
return;
}
String userWxId = agreeAddUserDTO.getUserWxId();
String ip = agreeAddUserDTO.getIp();
Integer code = SendMessageTypeEnum.SELF.getCode();
String robotId = agreeAddUserDTO.getRobotWxId();
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("robotWxId", robotId);
PcloudRobot pcloudRobot = (PcloudRobot)pcloudRobotDao.getBy(paramMap, "getByRobotWxId");
if (null != pcloudRobot) {
List<PcloudGuide> list = pcloudGuideMapper.listByRobotId(robotId);
if (!ListUtils.isEmpty(list)) {
list.forEach(pcloudGuide -> {
//todo 此处要考虑时间间隔
Integer timeSpan = pcloudGuide.getTimeSpan();
List<PcloudGuideMessageVO> messageVOList = pcloudGuideMessageMapper.listByGuideId(pcloudGuide.getId());
messageVOList.forEach(message -> {
Integer replyType = message.getReplyType();
if (ReplyTypeEnum.TEXT.value.equals(replyType)){
SendTextMessageVO sendTextMessageVO = new SendTextMessageVO();
sendTextMessageVO.setContent(message.getContent());
sendTextMessageVO.setAltId(robotId);
sendTextMessageVO.setWxGroupId(userWxId);
sendTextMessageVO.setIp(ip);
sendTextMessageVO.setCode(code);
WxGroupSDK.sendTextMessage(sendTextMessageVO);
}
if (ReplyTypeEnum.IMAGE.value.equals(replyType)) {
SendPicMessageVO sendPicMessageVO = new SendPicMessageVO();
sendPicMessageVO.setWxGroupId(userWxId);
sendPicMessageVO.setAltId(robotId);
sendPicMessageVO.setPicUrl(message.getPicUrl());
sendPicMessageVO.setIp(ip);
sendPicMessageVO.setCode(code);
WxGroupSDK.sendPicMessage(sendPicMessageVO);
}
});
});
}
return;
}
List<BookGroupFriendGuide> friendGuideList = bookGroupFriendGuideDao.getListByBookGroupId(bookGroupId);
if (ListUtils.isEmpty(friendGuideList)){
return;
}
int i=0;
for (BookGroupFriendGuide bookGroupFriendGuide: friendGuideList){
i=i+1;
......
<?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.guide.mapper.PcloudGuideMapper" >
<resultMap id="BaseResultMap" type="com.pcloud.book.guide.entity.PcloudGuide" >
<id column="id" property="id" jdbcType="INTEGER" />
<result column="type" property="type" jdbcType="INTEGER" />
<result column="create_time" property="createTime" jdbcType="TIMESTAMP" />
<result column="update_time" property="updateTime" jdbcType="TIMESTAMP" />
<result column="robot_wx_id" property="robotWxId" jdbcType="VARCHAR" />
<result column="time_span" property="timeSpan" jdbcType="INTEGER" />
<result column="seq_num" property="seqNum" jdbcType="INTEGER" />
</resultMap>
<sql id="Base_Column_List" >
id, type, create_time, update_time, robot_wx_id, time_span, seq_num
</sql>
<select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Integer" >
select
<include refid="Base_Column_List" />
from pcloud_guide
where id = #{id,jdbcType=INTEGER}
</select>
<delete id="deleteByPrimaryKey" parameterType="java.lang.Integer" >
delete from pcloud_guide
where id = #{id,jdbcType=INTEGER}
</delete>
<insert id="insert" parameterType="com.pcloud.book.guide.entity.PcloudGuide" useGeneratedKeys="true" keyProperty="id">
insert into pcloud_guide (type, create_time,
update_time, robot_wx_id, time_span,
seq_num)
values (#{type,jdbcType=VARCHAR}, now(),
now(), #{robotWxId,jdbcType=INTEGER}, #{timeSpan,jdbcType=INTEGER},
#{seqNum,jdbcType=INTEGER})
</insert>
<insert id="insertSelective" parameterType="com.pcloud.book.guide.entity.PcloudGuide" >
insert into pcloud_guide
<trim prefix="(" suffix=")" suffixOverrides="," >
<if test="id != null" >
id,
</if>
<if test="type != null" >
type,
</if>
<if test="createTime != null" >
create_time,
</if>
<if test="updateTime != null" >
update_time,
</if>
<if test="robotWxId != null" >
robot_wx_id,
</if>
<if test="timeSpan != null" >
time_span,
</if>
<if test="seqNum != null" >
seq_num,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides="," >
<if test="id != null" >
#{id,jdbcType=INTEGER},
</if>
<if test="type != null" >
#{type,jdbcType=VARCHAR},
</if>
<if test="createTime != null" >
#{createTime,jdbcType=TIMESTAMP},
</if>
<if test="updateTime != null" >
#{updateTime,jdbcType=TIMESTAMP},
</if>
<if test="robotWxId != null" >
#{robotWxId,jdbcType=INTEGER},
</if>
<if test="timeSpan != null" >
#{timeSpan,jdbcType=INTEGER},
</if>
<if test="seqNum != null" >
#{seqNum,jdbcType=INTEGER},
</if>
</trim>
</insert>
<update id="updateByPrimaryKeySelective" parameterType="com.pcloud.book.guide.entity.PcloudGuide" >
update pcloud_guide
<set >
<if test="type != null" >
type = #{type,jdbcType=VARCHAR},
</if>
<if test="createTime != null" >
create_time = #{createTime,jdbcType=TIMESTAMP},
</if>
<if test="updateTime != null" >
update_time = #{updateTime,jdbcType=TIMESTAMP},
</if>
<if test="robotWxId != null" >
robot_wx_id = #{robotWxId,jdbcType=INTEGER},
</if>
<if test="timeSpan != null" >
time_span = #{timeSpan,jdbcType=INTEGER},
</if>
<if test="seqNum != null" >
seq_num = #{seqNum,jdbcType=INTEGER},
</if>
</set>
where id = #{id,jdbcType=INTEGER}
</update>
<update id="updateByPrimaryKey" parameterType="com.pcloud.book.guide.entity.PcloudGuide" >
update pcloud_guide
set update_time = now(),
time_span = #{timeSpan,jdbcType=INTEGER},
seq_num = #{seqNum,jdbcType=INTEGER}
where id = #{id,jdbcType=INTEGER}
</update>
<select id="getMaxSeqNum" resultType="Integer">
select ifnull(max(seq_num), 0) from pcloud_guide
where 1=1
<if test="robotWxId != null">
and robot_wx_id = #{robotWxId}
</if>
<if test="robotWxId == null">
and type = 0
</if>
</select>
<select id="getCount" resultType="Integer">
SELECT
ifnull(count(1), 0)
FROM
(
SELECT
a.id
FROM
pcloud_guide a
LEFT JOIN pcloud_guide_message b ON a.id = b.pcloud_guide_id
WHERE 1=1
<if test="robotWxId != null">
and robot_wx_id = #{robotWxId}
</if>
<if test="robotWxId == null">
and type = 0
</if>
<if test="search != null">
and content like concat('%', #{search}, '%')
</if>
GROUP BY a.id
) s
</select>
<select id="listPcloudGuide" resultType="com.pcloud.book.guide.vo.PcloudGuideVO">
SELECT
a.id pcloudGuideId,
a.type,
a.create_time createTime,
a.time_span timeSpan,
a.seq_num seqNum
FROM
pcloud_guide a
LEFT JOIN pcloud_guide_message b ON a.id = b.pcloud_guide_id
WHERE 1=1
<if test="robotWxId != null">
and robot_wx_id = #{robotWxId}
</if>
<if test="robotWxId == null">
and type = 0
</if>
<if test="search != null">
and content like concat('%', #{search}, '%')
</if>
GROUP BY a.id
ORDER BY seq_num ASC
limit #{pageNum}, #{numPerPage}
</select>
<update id="updateSeqNum">
update pcloud_guide set seq_num = #{seqNum} where id = #{id}
</update>
<select id="listByRobotId" resultMap="BaseResultMap">
SELECT
id, time_span, seq_num
FROM
pcloud_guide
WHERE
robot_wx_id = #{robotId}
ORDER BY
seq_num ASC
</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.guide.mapper.PcloudGuideMessageMapper" >
<resultMap id="BaseResultMap" type="com.pcloud.book.guide.entity.PcloudGuideMessage" >
<id column="id" property="id" jdbcType="INTEGER" />
<result column="pcloud_guide_id" property="pcloudGuideId" jdbcType="INTEGER" />
<result column="reply_type" property="replyType" jdbcType="INTEGER" />
<result column="content" property="content" jdbcType="VARCHAR" />
<result column="pic_url" property="picUrl" jdbcType="VARCHAR" />
<result column="create_time" property="createTime" jdbcType="TIMESTAMP" />
<result column="update_time" property="updateTime" jdbcType="TIMESTAMP" />
</resultMap>
<sql id="Base_Column_List" >
id, pcloud_guide_id, reply_type, content, pic_url, create_time, update_time
</sql>
<select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Integer" >
select
<include refid="Base_Column_List" />
from pcloud_guide_message
where id = #{id,jdbcType=INTEGER}
</select>
<delete id="deleteByPrimaryKey" parameterType="java.lang.Integer" >
delete from pcloud_guide_message
where id = #{id,jdbcType=INTEGER}
</delete>
<insert id="insert" parameterType="com.pcloud.book.guide.entity.PcloudGuideMessage" >
insert into pcloud_guide_message (id, pcloud_guide_id, reply_type,
content, pic_url, create_time,
update_time)
values (#{id,jdbcType=INTEGER}, #{pcloudGuideId,jdbcType=INTEGER}, #{replyType,jdbcType=INTEGER},
#{content,jdbcType=VARCHAR}, #{picUrl,jdbcType=VARCHAR}, #{createTime,jdbcType=TIMESTAMP},
#{updateTime,jdbcType=TIMESTAMP})
</insert>
<insert id="insertSelective" parameterType="com.pcloud.book.guide.entity.PcloudGuideMessage" >
insert into pcloud_guide_message
<trim prefix="(" suffix=")" suffixOverrides="," >
<if test="id != null" >
id,
</if>
<if test="pcloudGuideId != null" >
pcloud_guide_id,
</if>
<if test="replyType != null" >
reply_type,
</if>
<if test="content != null" >
content,
</if>
<if test="picUrl != null" >
pic_url,
</if>
<if test="createTime != null" >
create_time,
</if>
<if test="updateTime != null" >
update_time,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides="," >
<if test="id != null" >
#{id,jdbcType=INTEGER},
</if>
<if test="pcloudGuideId != null" >
#{pcloudGuideId,jdbcType=INTEGER},
</if>
<if test="replyType != null" >
#{replyType,jdbcType=INTEGER},
</if>
<if test="content != null" >
#{content,jdbcType=VARCHAR},
</if>
<if test="picUrl != null" >
#{picUrl,jdbcType=VARCHAR},
</if>
<if test="createTime != null" >
#{createTime,jdbcType=TIMESTAMP},
</if>
<if test="updateTime != null" >
#{updateTime,jdbcType=TIMESTAMP},
</if>
</trim>
</insert>
<update id="updateByPrimaryKeySelective" parameterType="com.pcloud.book.guide.entity.PcloudGuideMessage" >
update pcloud_guide_message
<set >
<if test="pcloudGuideId != null" >
pcloud_guide_id = #{pcloudGuideId,jdbcType=INTEGER},
</if>
<if test="replyType != null" >
reply_type = #{replyType,jdbcType=INTEGER},
</if>
<if test="content != null" >
content = #{content,jdbcType=VARCHAR},
</if>
<if test="picUrl != null" >
pic_url = #{picUrl,jdbcType=VARCHAR},
</if>
<if test="createTime != null" >
create_time = #{createTime,jdbcType=TIMESTAMP},
</if>
<if test="updateTime != null" >
update_time = #{updateTime,jdbcType=TIMESTAMP},
</if>
</set>
where id = #{id,jdbcType=INTEGER}
</update>
<update id="updateByPrimaryKey" parameterType="com.pcloud.book.guide.entity.PcloudGuideMessage" >
update pcloud_guide_message
set pcloud_guide_id = #{pcloudGuideId,jdbcType=INTEGER},
reply_type = #{replyType,jdbcType=INTEGER},
content = #{content,jdbcType=VARCHAR},
pic_url = #{picUrl,jdbcType=VARCHAR},
create_time = #{createTime,jdbcType=TIMESTAMP},
update_time = #{updateTime,jdbcType=TIMESTAMP}
where id = #{id,jdbcType=INTEGER}
</update>
<insert id="batchInsert" parameterType="com.pcloud.book.guide.entity.PcloudGuideMessage">
insert into pcloud_guide_message (pcloud_guide_id, reply_type,
content, pic_url, create_time)
values
<foreach collection="list" item="item" separator=",">
(#{item.pcloudGuideId}, #{item.replyType}, #{item.content}, #{item.picUrl}, now())
</foreach>
</insert>
<delete id="deleteByGuideId" parameterType="Integer">
delete from pcloud_guide_message where pcloud_guide_id = #{pcloudGuideId}
</delete>
<select id="listByGuideId" parameterType="Integer" resultType="com.pcloud.book.guide.vo.PcloudGuideMessageVO">
SELECT
reply_type replyType,
content,
pic_url picUrl
FROM
`pcloud_guide_message`
WHERE
pcloud_guide_id = #{pcloudGuideId}
</select>
<select id="listByRobotId" resultType="com.pcloud.book.guide.vo.PcloudGuideMessageVO">
SELECT
reply_type replyType,
content,
pic_url picUrl
FROM
pcloud_guide a
LEFT JOIN pcloud_guide_message b ON a.id = b.pcloud_guide_id
WHERE
robot_wx_id = #{robotId}
</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