Commit eda95919 by 阮思源

Merge branch 'feat-1002185' into 'master'

个人号共读活动

See merge request rays/pcloud-book!351
parents cac7a5f7 1cbcb00f
package com.pcloud.book.reading.constant;
/**
* @描述:共读活动
* @作者:zhuyajie
* @创建时间:15:46 2020/1/15
* @版本:1.0
*/
public class ReadingActivityConstant {
/**
* 定时器类型名称
*/
public static final String JOB_GROUP = "readingActivity";
/**
* 邀请语-定时器方法名
*/
public static final String JOB_NAME_INVITE = "sendInvite";
/**
* 开场语-定时器方法名
*/
public static final String JOB_NAME_START = "sendStart";
/**
* 结束语-定时器方法名
*/
public static final String JOB_NAME_END = "sendEnd";
/**
* 打卡每日提醒-定时器方法名
*/
public static final String JOB_NAME_CLOCK_REMIND = "sendClockRemind";
}
package com.pcloud.book.reading.dto;
import com.pcloud.common.dto.BaseDto;
import lombok.Data;
/**
* @描述:分配群的参数
* @作者:zhuyajie
* @创建时间:13:53 2020/1/20
* @版本:1.0
*/
@Data
public class AssignGroupDTO extends BaseDto{
/**
* 群id
*/
private String wxGroupId;
/**
* 群主小号
*/
private String masterId;
}
package com.pcloud.book.reading.service;
import io.swagger.annotations.ApiParam;
import org.springframework.cloud.netflix.feign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import java.util.Map;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
/**
* @描述:共读活动
* @作者:zhuyajie
* @创建时间:15:45 2020/1/15
* @版本:1.0
*/
@FeignClient(value = "pcloud-service-book", qualifier = "readingActivityServiceCloud", path = "book/v1.0/readingActivityService")
@Api(description = "共读活动内部服务")
public interface ReadingActivityService {
@ApiOperation(value = "定时任务发邀请语", httpMethod = "POST")
@PostMapping("/sendInviteMsg")
public void sendInviteMsg(@RequestBody @ApiParam Map<String, Object> map);
@ApiOperation(value = "定时任务发开场语", httpMethod = "POST")
@PostMapping("/sendStartMsg")
public void sendStartMsg(@RequestBody @ApiParam Map<String, Object> map);
@ApiOperation(value = "定时任务发结束语", httpMethod = "POST")
@PostMapping("/sendEndMsg")
public void sendEndMsg(@RequestBody @ApiParam Map<String, Object> map);
@ApiOperation(value = "定时任务发打卡每日提醒", httpMethod = "POST")
@PostMapping("/sendClockRemind")
public void sendClockRemind(@RequestBody @ApiParam Map<String, Object> map);
}
...@@ -285,6 +285,16 @@ ...@@ -285,6 +285,16 @@
<skip>true</skip> <skip>true</skip>
</configuration> </configuration>
</plugin> </plugin>
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.2</version>
<configuration>
<verbose>true</verbose>
<overwrite>true</overwrite>
</configuration>
</plugin>
</plugins> </plugins>
</build> </build>
</project> </project>
...@@ -5,6 +5,7 @@ import com.pcloud.book.advertising.entity.AdvertisingBrand; ...@@ -5,6 +5,7 @@ import com.pcloud.book.advertising.entity.AdvertisingBrand;
import com.pcloud.common.core.dao.BaseDao; import com.pcloud.common.core.dao.BaseDao;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* @描述:广告品牌方 * @描述:广告品牌方
...@@ -67,4 +68,9 @@ public interface AdvertisingBrandDao extends BaseDao<AdvertisingBrand> { ...@@ -67,4 +68,9 @@ public interface AdvertisingBrandDao extends BaseDao<AdvertisingBrand> {
* @return * @return
*/ */
AdvertisingBrand getLoginInfo(String loginName); AdvertisingBrand getLoginInfo(String loginName);
/**
* 根据id集合获取
*/
Map<Long,AdvertisingBrand> getMapByIds(List<Long> brandIds);
} }
...@@ -61,4 +61,11 @@ public class AdvertisingBrandDaoImpl extends BaseDaoImpl<AdvertisingBrand> imple ...@@ -61,4 +61,11 @@ public class AdvertisingBrandDaoImpl extends BaseDaoImpl<AdvertisingBrand> imple
map.put("loginName", loginName); map.put("loginName", loginName);
return getSessionTemplate().selectOne(getStatement("getLoginInfo"), map); return getSessionTemplate().selectOne(getStatement("getLoginInfo"), map);
} }
@Override
public Map<Long,AdvertisingBrand> getMapByIds(List<Long> brandIds) {
Map<String, Object> map = new HashMap<>();
map.put("brandIds", brandIds);
return getSessionTemplate().selectMap(getStatement("getMapByIds"), map,"id");
}
} }
...@@ -587,7 +587,7 @@ public interface BookBiz { ...@@ -587,7 +587,7 @@ public interface BookBiz {
* @param adviserId * @param adviserId
* @return * @return
*/ */
PageBeanNew<AdviserBookInfoDTO> getListPage4SelfBookGroup(Integer currentPage, Integer numPerPage, String name,Long adviserId); PageBeanNew<AdviserBookInfoDTO> getListPage4SelfBookGroup(Integer currentPage, Integer numPerPage, String name,Long adviserId, Long graLabelId, Long subLabelId, Long verLabelId, Long areaLabelId);
/** /**
* 获取书籍标签 * 获取书籍标签
......
...@@ -1778,7 +1778,7 @@ public class BookBizImpl implements BookBiz { ...@@ -1778,7 +1778,7 @@ public class BookBizImpl implements BookBiz {
} }
@Override @Override
public PageBeanNew<AdviserBookInfoDTO> getListPage4SelfBookGroup(Integer currentPage, Integer numPerPage, String name,Long adviserId) { public PageBeanNew<AdviserBookInfoDTO> getListPage4SelfBookGroup(Integer currentPage, Integer numPerPage, String name,Long adviserId, Long graLabelId, Long subLabelId, Long verLabelId, Long areaLabelId) {
Map<String, Object> paramMap = new HashMap<>(); Map<String, Object> paramMap = new HashMap<>();
if (!StringUtil.isEmpty(name)) { if (!StringUtil.isEmpty(name)) {
paramMap.put("name", name); paramMap.put("name", name);
...@@ -1787,6 +1787,10 @@ public class BookBizImpl implements BookBiz { ...@@ -1787,6 +1787,10 @@ public class BookBizImpl implements BookBiz {
paramMap.put("adviserId", adviserId); paramMap.put("adviserId", adviserId);
} }
paramMap.put("joinGroupTypes", Arrays.asList(JoinGroupTypeEnum.ROBOT.getCode(),JoinGroupTypeEnum.AI_ROBOT.getCode())); paramMap.put("joinGroupTypes", Arrays.asList(JoinGroupTypeEnum.ROBOT.getCode(),JoinGroupTypeEnum.AI_ROBOT.getCode()));
paramMap.put("graLabelId",graLabelId);
paramMap.put("subLabelId",subLabelId);
paramMap.put("verLabelId",verLabelId);
paramMap.put("areaLabelId",areaLabelId);
PageBeanNew<AdviserBookInfoDTO> pageBean = bookDao.listPageNew(new PageParam(currentPage, numPerPage), paramMap, "getListPage4BookGroup"); PageBeanNew<AdviserBookInfoDTO> pageBean = bookDao.listPageNew(new PageParam(currentPage, numPerPage), paramMap, "getListPage4BookGroup");
if (null == pageBean || ListUtils.isEmpty(pageBean.getRecordList())) { if (null == pageBean || ListUtils.isEmpty(pageBean.getRecordList())) {
return new PageBeanNew<>(currentPage, numPerPage, 0, new ArrayList<>()); return new PageBeanNew<>(currentPage, numPerPage, 0, new ArrayList<>());
......
...@@ -610,6 +610,10 @@ public interface BookFacade { ...@@ -610,6 +610,10 @@ public interface BookFacade {
public ResponseDto<PageBeanNew<AdviserBookInfoDTO>> getListPage4SelfBookGroup( public ResponseDto<PageBeanNew<AdviserBookInfoDTO>> getListPage4SelfBookGroup(
@RequestHeader("token") String token, @RequestHeader("token") String token,
@RequestParam(value = "name", required = false) String name, @RequestParam(value = "name", required = false) String name,
@RequestParam(value = "graLabelId", required = false) Long graLabelId,
@RequestParam(value = "subLabelId", required = false) Long subLabelId,
@RequestParam(value = "verLabelId", required = false) Long verLabelId,
@RequestParam(value = "areaLabelId", required = false) Long areaLabelId,
@RequestParam(value = "currentPage", required = false) Integer currentPage, @RequestParam(value = "currentPage", required = false) Integer currentPage,
@RequestParam(value = "numPerPage", required = false) Integer numPerPage) @RequestParam(value = "numPerPage", required = false) Integer numPerPage)
throws BizException, PermissionException; throws BizException, PermissionException;
......
...@@ -824,6 +824,10 @@ public class BookFacadeImpl implements BookFacade { ...@@ -824,6 +824,10 @@ public class BookFacadeImpl implements BookFacade {
public ResponseDto<PageBeanNew<AdviserBookInfoDTO>> getListPage4SelfBookGroup( public ResponseDto<PageBeanNew<AdviserBookInfoDTO>> getListPage4SelfBookGroup(
@RequestHeader("token") String token, @RequestHeader("token") String token,
@RequestParam(value = "name", required = false) String name, @RequestParam(value = "name", required = false) String name,
@RequestParam(value = "graLabelId", required = false) Long graLabelId,
@RequestParam(value = "subLabelId", required = false) Long subLabelId,
@RequestParam(value = "verLabelId", required = false) Long verLabelId,
@RequestParam(value = "areaLabelId", required = false) Long areaLabelId,
@RequestParam(value = "currentPage", required = false) Integer currentPage, @RequestParam(value = "currentPage", required = false) Integer currentPage,
@RequestParam(value = "numPerPage", required = false) Integer numPerPage) @RequestParam(value = "numPerPage", required = false) Integer numPerPage)
throws BizException, PermissionException { throws BizException, PermissionException {
...@@ -831,7 +835,7 @@ public class BookFacadeImpl implements BookFacade { ...@@ -831,7 +835,7 @@ public class BookFacadeImpl implements BookFacade {
if (currentPage == null || numPerPage == null || currentPage < 0 || numPerPage < 0) { if (currentPage == null || numPerPage == null || currentPage < 0 || numPerPage < 0) {
throw BookBizException.PAGE_PARAM_DELETION; throw BookBizException.PAGE_PARAM_DELETION;
} }
PageBeanNew<AdviserBookInfoDTO> pageBean = bookBiz.getListPage4SelfBookGroup(currentPage, numPerPage, name,null); PageBeanNew<AdviserBookInfoDTO> pageBean = bookBiz.getListPage4SelfBookGroup(currentPage, numPerPage, name,null, graLabelId, subLabelId, verLabelId, areaLabelId);
return new ResponseDto<>(null == pageBean ? new PageBeanNew<>() : pageBean); return new ResponseDto<>(null == pageBean ? new PageBeanNew<>() : pageBean);
} }
...@@ -847,7 +851,7 @@ public class BookFacadeImpl implements BookFacade { ...@@ -847,7 +851,7 @@ public class BookFacadeImpl implements BookFacade {
if (currentPage == null || numPerPage == null || currentPage < 0 || numPerPage < 0) { if (currentPage == null || numPerPage == null || currentPage < 0 || numPerPage < 0) {
throw BookBizException.PAGE_PARAM_DELETION; throw BookBizException.PAGE_PARAM_DELETION;
} }
PageBeanNew<AdviserBookInfoDTO> pageBean = bookBiz.getListPage4SelfBookGroup(currentPage, numPerPage, name,adviserId); PageBeanNew<AdviserBookInfoDTO> pageBean = bookBiz.getListPage4SelfBookGroup(currentPage, numPerPage, name,adviserId,null,null,null,null);
return new ResponseDto<>(null == pageBean ? new PageBeanNew<>() : pageBean); return new ResponseDto<>(null == pageBean ? new PageBeanNew<>() : pageBean);
} }
......
...@@ -597,4 +597,15 @@ public class WechatGroupConsr { ...@@ -597,4 +597,15 @@ public class WechatGroupConsr {
} }
return map; return map;
} }
@ParamLog("根据小号类型获取小号id")
public List<String> getSelfRobotByRobotType(Integer robotType) {
List<String> ids = new ArrayList<>();
try {
ids = ResponseHandleUtil.parseList(selfRobotService.getSelfRobotByRobotType(robotType),String.class);
}catch (Exception e){
log.error("[selfRobotService.getSelfRobotByRobotType]调用失败" + e.getMessage(), e);
}
return ids;
}
} }
...@@ -759,4 +759,11 @@ public interface BookGroupBiz { ...@@ -759,4 +759,11 @@ public interface BookGroupBiz {
* @return * @return
*/ */
SelfRobotBookGroupDTO getSelfRobotBookGroupInfoByUser(String wxUserId, Long bookGroupId); SelfRobotBookGroupDTO getSelfRobotBookGroupInfoByUser(String wxUserId, Long bookGroupId);
/**
* 共读活动-好友列表
* @param userSelectParamDTO
* @return
*/
PageBeanNew<UserBookInfoVO> listUser4ReadingActivity(UserSelectParamDTO userSelectParamDTO);
} }
...@@ -25,6 +25,10 @@ import java.util.Map; ...@@ -25,6 +25,10 @@ import java.util.Map;
public interface GroupQrcodeBiz { public interface GroupQrcodeBiz {
/** /**
* 获取群人数
*/
Map<String, Integer> getGroupUserNum(List<String> wxGroups);
/**
* 根据Server获取相关的群id * 根据Server获取相关的群id
* @param serverId * @param serverId
* @return * @return
......
...@@ -104,6 +104,7 @@ import com.pcloud.book.keywords.dao.BookKeywordDao; ...@@ -104,6 +104,7 @@ import com.pcloud.book.keywords.dao.BookKeywordDao;
import com.pcloud.book.keywords.dto.KeywordDTO; import com.pcloud.book.keywords.dto.KeywordDTO;
import com.pcloud.book.keywords.enums.ReplyTypeEnum; import com.pcloud.book.keywords.enums.ReplyTypeEnum;
import com.pcloud.book.keywords.vo.ListKeywordVO; import com.pcloud.book.keywords.vo.ListKeywordVO;
import com.pcloud.book.reading.dao.ReadingUserDao;
import com.pcloud.book.util.common.ThreadPoolUtils; import com.pcloud.book.util.common.ThreadPoolUtils;
import com.pcloud.channelcenter.base.constants.ChannelConstants; import com.pcloud.channelcenter.base.constants.ChannelConstants;
import com.pcloud.channelcenter.qrcode.dto.GroupQrcodeVO; import com.pcloud.channelcenter.qrcode.dto.GroupQrcodeVO;
...@@ -311,6 +312,8 @@ public class BookGroupBizImpl implements BookGroupBiz { ...@@ -311,6 +312,8 @@ public class BookGroupBizImpl implements BookGroupBiz {
private BookGroupFriendGuideDao bookGroupFriendGuideDao; private BookGroupFriendGuideDao bookGroupFriendGuideDao;
@Autowired @Autowired
private ResourceConsr resourceConsr; private ResourceConsr resourceConsr;
@Autowired
private ReadingUserDao readingUserDao;
private static final ThreadPoolExecutor PLATFORM_STATISTICS_EXPORT_THREAD = new ThreadPoolExecutor(2, 2, private static final ThreadPoolExecutor PLATFORM_STATISTICS_EXPORT_THREAD = new ThreadPoolExecutor(2, 2,
0, TimeUnit.SECONDS, new LinkedBlockingQueue<>(), 0, TimeUnit.SECONDS, new LinkedBlockingQueue<>(),
...@@ -4076,7 +4079,7 @@ public class BookGroupBizImpl implements BookGroupBiz { ...@@ -4076,7 +4079,7 @@ public class BookGroupBizImpl implements BookGroupBiz {
} }
return resultDtos; return resultDtos;
} }
@Override @Override
@ParamLog("ERP创建社群二维码") @ParamLog("ERP创建社群二维码")
public ErpBookGroupDTO createGroupQrcode4Erp(ErpGroupQrcodeDTO erpGroupQrcodeDTO) { public ErpBookGroupDTO createGroupQrcode4Erp(ErpGroupQrcodeDTO erpGroupQrcodeDTO) {
...@@ -4331,4 +4334,33 @@ public class BookGroupBizImpl implements BookGroupBiz { ...@@ -4331,4 +4334,33 @@ public class BookGroupBizImpl implements BookGroupBiz {
} }
return dto; return dto;
} }
@Override
public PageBeanNew<UserBookInfoVO> listUser4ReadingActivity(UserSelectParamDTO userSelectParamDTO) {
Integer currentPage = userSelectParamDTO.getCurrentPage();
Integer numPerPage = userSelectParamDTO.getNumPerPage();
Map<String, Object> map = new HashMap<>();
//用户昵称id模糊查询
if (!StringUtil.isEmpty(userSelectParamDTO.getUserQuery())) {
List<String> wxUserIds = wechatGroupConsr.getByUserQuery(userSelectParamDTO.getUserQuery());
if (!ListUtils.isEmpty(wxUserIds)) {
map.put("wxUserIds", wxUserIds);
} else {
return new PageBeanNew<>(currentPage, numPerPage, 0, new ArrayList<>());
}
}
map.put("bookIds", userSelectParamDTO.getBookIds());
map.put("robotId", userSelectParamDTO.getRobotId());
map.put("invitedFilter", userSelectParamDTO.getInvitedFilter());
List<UserBookInfoVO> countlist = bookGroupCipherUserDao.listUser4ReadingActivity(map);
if (ListUtils.isEmpty(countlist)) {
return new PageBeanNew<>(currentPage, numPerPage, 0, new ArrayList<>());
}
map.put("pageNum", currentPage * numPerPage);
map.put("numPerPage", numPerPage);
List<UserBookInfoVO> list = bookGroupCipherUserDao.listUser4ReadingActivity(map);
//填充用户信息、扫码书刊信息,小号信息
groupSet.setUserBookInfo4ReadingActivity(list);
return new PageBeanNew<>(currentPage, numPerPage, countlist.size(), list);
}
} }
...@@ -122,6 +122,17 @@ public class GroupQrcodeBizImpl implements GroupQrcodeBiz { ...@@ -122,6 +122,17 @@ public class GroupQrcodeBizImpl implements GroupQrcodeBiz {
private AmqpTemplate amqpTemplate; private AmqpTemplate amqpTemplate;
@Override
public Map<String, Integer> getGroupUserNum(List<String> wxGroups) {
if (CollectionUtils.isEmpty(wxGroups)) {
return Maps.newHashMap();
}
List<GroupQrcode> groupUserNum = groupQrcodeDao.getGroupUserNum(wxGroups);
if (CollectionUtils.isEmpty(groupUserNum)) {
return Maps.newHashMap();
}
return groupUserNum.stream().collect(Collectors.toMap(GroupQrcode::getWeixinGroupId, GroupQrcode::getUserNumber));
}
/** /**
* 自动更新群人数线程是否开始执行 * 自动更新群人数线程是否开始执行
......
...@@ -15,4 +15,32 @@ public class BookBusinessConstants { ...@@ -15,4 +15,32 @@ public class BookBusinessConstants {
*/ */
public static final Map<String, AutoUpdateGroupNumDTO> GROUP_NUM_DTO_MAP = new ConcurrentHashMap<>(128); public static final Map<String, AutoUpdateGroupNumDTO> GROUP_NUM_DTO_MAP = new ConcurrentHashMap<>(128);
/**
* 收款状态
*/
public enum CollectionStatus {
/**
* 代收款
*/
COLLECTION(1),
/**
* 收款中
*/
RECEIVING(2),
/**
* 收款成功
*/
COLLECTION_SUCCESSFUL(3);
private Integer code;
CollectionStatus(Integer code) {
this.code = code;
}
public Integer getCode() {
return code;
}
}
} }
...@@ -174,4 +174,26 @@ public interface BookGroupCipherUserDao extends BaseDao<BookGroupCipherUser> { ...@@ -174,4 +174,26 @@ public interface BookGroupCipherUserDao extends BaseDao<BookGroupCipherUser> {
* @return * @return
*/ */
SelfRobotBookGroupDTO getSelfRobotBookGroupInfoByUser(String wxUserId, Long bookGroupId); SelfRobotBookGroupDTO getSelfRobotBookGroupInfoByUser(String wxUserId, Long bookGroupId);
/**
* 共读活动好友查询
* @param map
* @return
*/
List<UserBookInfoVO> listUser4ReadingActivity(Map<String, Object> map);
/**
* 扫码书刊及关联的新标签
* @param wxUserId
* @param altId
* @return
*/
List<UserBookInfoItemVO> getScanBookInfoByUserNew(String wxUserId, String altId);
/**
* 获取关联的小号列表
* @param wxUserId
* @return
*/
public List<String> getAltIdListByUserId(String wxUserId);
} }
...@@ -25,6 +25,11 @@ import java.util.Map; ...@@ -25,6 +25,11 @@ import java.util.Map;
*/ */
public interface GroupQrcodeDao extends BaseDao<GroupQrcode> { public interface GroupQrcodeDao extends BaseDao<GroupQrcode> {
/**
* 获取群人数
*/
List<GroupQrcode> getGroupUserNum(List<String> wxGroupIds);
List<GroupQrcodeServerDTO> getWxGroupIdByServerId(List<Long> serverId); List<GroupQrcodeServerDTO> getWxGroupIdByServerId(List<Long> serverId);
Integer updateGroupCount(String wxGroupId, Integer num); Integer updateGroupCount(String wxGroupId, Integer num);
......
...@@ -195,4 +195,22 @@ public class BookGroupCipherUserDaoImpl extends BaseDaoImpl<BookGroupCipherUser> ...@@ -195,4 +195,22 @@ public class BookGroupCipherUserDaoImpl extends BaseDaoImpl<BookGroupCipherUser>
map.put("wxUserId", wxUserId); map.put("wxUserId", wxUserId);
return getSessionTemplate().selectOne(getStatement("getSelfRobotBookGroupInfoByUser"), map); return getSessionTemplate().selectOne(getStatement("getSelfRobotBookGroupInfoByUser"), map);
} }
@Override
public List<UserBookInfoVO> listUser4ReadingActivity(Map<String, Object> map) {
return getSessionTemplate().selectList(getStatement("listUser4ReadingActivity"), map);
}
@Override
public List<UserBookInfoItemVO> getScanBookInfoByUserNew(String wxUserId, String altId) {
Map<String, Object> map = new HashMap<>();
map.put("wxUserId", wxUserId);
map.put("altId", altId);
return getSessionTemplate().selectList(getStatement("getScanBookInfoByUserNew"), map);
}
@Override
public List<String> getAltIdListByUserId(String wxUserId) {
return getSessionTemplate().selectList(getStatement("getAltIdListByUserId"), wxUserId);
}
} }
...@@ -33,6 +33,11 @@ import java.util.Map; ...@@ -33,6 +33,11 @@ import java.util.Map;
public class GroupQrcodeDaoImpl extends BaseDaoImpl<GroupQrcode> implements GroupQrcodeDao { public class GroupQrcodeDaoImpl extends BaseDaoImpl<GroupQrcode> implements GroupQrcodeDao {
@Override @Override
public List<GroupQrcode> getGroupUserNum(List<String> list) {
return this.getSqlSession().selectList("getGroupUserNum", list);
}
@Override
public List<GroupQrcodeServerDTO> getWxGroupIdByServerId(List<Long> list) { public List<GroupQrcodeServerDTO> getWxGroupIdByServerId(List<Long> list) {
return this.getSqlSession().selectList(this.getStatement("getWxGroupIdByServerId"), list); return this.getSqlSession().selectList(this.getStatement("getWxGroupIdByServerId"), list);
} }
......
...@@ -48,4 +48,9 @@ public class UserSelectParamDTO { ...@@ -48,4 +48,9 @@ public class UserSelectParamDTO {
* 单本图书id * 单本图书id
*/ */
private Long bookGroupId; private Long bookGroupId;
/**
* 不展示活动已邀请的读者-共读活动
*/
private Boolean invitedFilter;
} }
...@@ -688,4 +688,9 @@ public interface BookGroupFacade { ...@@ -688,4 +688,9 @@ public interface BookGroupFacade {
@CookieValue("userInfo") String userInfo, @CookieValue("userInfo") String userInfo,
@RequestBody WxWechatUserCorrelation wxWechatUserCorrelation @RequestBody WxWechatUserCorrelation wxWechatUserCorrelation
)throws BizException, PermissionException; )throws BizException, PermissionException;
@ApiOperation(value = "共读活动-用户列表查询", httpMethod = "POST")
@PostMapping("listUser4ReadingActivity")
public ResponseDto<PageBeanNew<UserBookInfoVO>> listUser4ReadingActivity(
@RequestHeader("token") String token, @RequestBody @ApiParam UserSelectParamDTO userSelectParamDTO) throws PermissionException;
} }
...@@ -11,7 +11,6 @@ import com.pcloud.book.group.dto.UserSelectParamDTO; ...@@ -11,7 +11,6 @@ import com.pcloud.book.group.dto.UserSelectParamDTO;
import com.pcloud.book.group.entity.BookGroup; import com.pcloud.book.group.entity.BookGroup;
import com.pcloud.book.group.entity.BookGroupClassify; import com.pcloud.book.group.entity.BookGroupClassify;
import com.pcloud.book.group.entity.BookGroupServe; import com.pcloud.book.group.entity.BookGroupServe;
import com.pcloud.book.group.enums.JoinGroupTypeEnum;
import com.pcloud.book.group.entity.WxWechatUserCorrelation; import com.pcloud.book.group.entity.WxWechatUserCorrelation;
import com.pcloud.book.group.enums.JoinGroupTypeEnum; import com.pcloud.book.group.enums.JoinGroupTypeEnum;
import com.pcloud.book.group.facade.BookGroupFacade; import com.pcloud.book.group.facade.BookGroupFacade;
...@@ -1096,4 +1095,16 @@ public class BookGroupFacadeImpl implements BookGroupFacade { ...@@ -1096,4 +1095,16 @@ public class BookGroupFacadeImpl implements BookGroupFacade {
bookGroupBiz.createWxWechatUserCorrelation(wechatUserId,wxWechatUserCorrelation); bookGroupBiz.createWxWechatUserCorrelation(wechatUserId,wxWechatUserCorrelation);
return new ResponseDto<>(); return new ResponseDto<>();
} }
@ApiOperation(value = "共读活动-用户列表查询", httpMethod = "POST")
@PostMapping("listUser4ReadingActivity")
@Override
public ResponseDto<PageBeanNew<UserBookInfoVO>> listUser4ReadingActivity(@RequestHeader("token") String token, @RequestBody @ApiParam UserSelectParamDTO userSelectParamDTO) throws PermissionException {
SessionUtil.getToken4Redis(token);
if (null == userSelectParamDTO || null == userSelectParamDTO.getCurrentPage() || null == userSelectParamDTO.getNumPerPage()) {
throw new WechatGroupBizException(WechatGroupBizException.PARAM_IS_NULL, "缺少参数");
}
PageBeanNew<UserBookInfoVO> pageBeanNew = bookGroupBiz.listUser4ReadingActivity(userSelectParamDTO);
return new ResponseDto<>(pageBeanNew);
}
} }
...@@ -5,6 +5,8 @@ import com.pcloud.appcenter.app.dto.AppDto; ...@@ -5,6 +5,8 @@ import com.pcloud.appcenter.app.dto.AppDto;
import com.pcloud.appcenter.assist.dto.AssistTempletDTO; import com.pcloud.appcenter.assist.dto.AssistTempletDTO;
import com.pcloud.appcenter.base.dto.AppPriceCacheDTO; import com.pcloud.appcenter.base.dto.AppPriceCacheDTO;
import com.pcloud.appcenter.cache.service.AppPriceCacheService; import com.pcloud.appcenter.cache.service.AppPriceCacheService;
import com.pcloud.book.book.dao.BookLabelDao;
import com.pcloud.book.book.entity.BookLabel;
import com.pcloud.book.consumer.analysisengine.BrowseRecordConsr; import com.pcloud.book.consumer.analysisengine.BrowseRecordConsr;
import com.pcloud.book.consumer.app.AppConsr; import com.pcloud.book.consumer.app.AppConsr;
import com.pcloud.book.consumer.app.AssistTempletConsr; import com.pcloud.book.consumer.app.AssistTempletConsr;
...@@ -25,6 +27,7 @@ import com.pcloud.book.group.dto.CountAndTimeDTO; ...@@ -25,6 +27,7 @@ import com.pcloud.book.group.dto.CountAndTimeDTO;
import com.pcloud.book.group.dto.GroupTopicDTO; import com.pcloud.book.group.dto.GroupTopicDTO;
import com.pcloud.book.group.entity.BookGroupServe; import com.pcloud.book.group.entity.BookGroupServe;
import com.pcloud.book.group.vo.BookGroupAnalysisVO; import com.pcloud.book.group.vo.BookGroupAnalysisVO;
import com.pcloud.book.group.vo.RobotBaseInfoVO;
import com.pcloud.book.group.vo.UserBookInfoItemVO; import com.pcloud.book.group.vo.UserBookInfoItemVO;
import com.pcloud.book.group.vo.UserBookInfoVO; import com.pcloud.book.group.vo.UserBookInfoVO;
import com.pcloud.book.keywords.dao.BookKeywordDao; import com.pcloud.book.keywords.dao.BookKeywordDao;
...@@ -57,6 +60,7 @@ import org.springframework.util.CollectionUtils; ...@@ -57,6 +60,7 @@ import org.springframework.util.CollectionUtils;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date; import java.util.Date;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
...@@ -110,6 +114,8 @@ public class GroupSet { ...@@ -110,6 +114,8 @@ public class GroupSet {
private ProductConsr productConsr; private ProductConsr productConsr;
@Autowired @Autowired
private AppPriceCacheService appPriceCacheService; private AppPriceCacheService appPriceCacheService;
@Autowired
private BookLabelDao bookLabelDao;
/** /**
* 群分类删除topic * 群分类删除topic
...@@ -707,4 +713,87 @@ public class GroupSet { ...@@ -707,4 +713,87 @@ public class GroupSet {
} }
} }
} }
/**
* 共读活动好友列表-填充用户信息、扫码书刊信息
* @param list
*/
public void setUserBookInfo4ReadingActivity(List<UserBookInfoVO> list) {
List<String> wxUserIds = list.stream().filter(s -> s.getWxUserId() != null).map(UserBookInfoVO::getWxUserId).distinct().collect(Collectors.toList());
Map<String, GroupUserDTO> userDTOMap = wechatGroupConsr.mapWxUserInfoByWxIdList(wxUserIds);
List<Long> bookLabelIds = new ArrayList<>();
List<String> altIdList = new ArrayList<>();
for (UserBookInfoVO userBookInfoVO : list) {
//用户信息
if (!MapUtils.isEmpty(userDTOMap) && userDTOMap.containsKey(userBookInfoVO.getWxUserId())) {
GroupUserDTO userDTO = userDTOMap.get(userBookInfoVO.getWxUserId());
userBookInfoVO.setHeadPic(userDTO.getHeadPic());
userBookInfoVO.setNickName(userDTO.getNickName());
userBookInfoVO.setSex(userDTO.getSex());
}
//扫码书刊
List<UserBookInfoItemVO> bookList = bookGroupCipherUserDao.getScanBookInfoByUserNew(userBookInfoVO.getWxUserId(), userBookInfoVO.getAltId());
userBookInfoVO.setBookInfoItemVOS(bookList);
List<Long> graLabelIds = bookList.stream().filter(s -> s.getGraLabelId() != null).map(UserBookInfoItemVO::getGraLabelId).distinct().collect(Collectors.toList());
List<Long> subLabelIds = bookList.stream().filter(s -> s.getSubLabelId() != null).map(UserBookInfoItemVO::getSubLabelId).distinct().collect(Collectors.toList());
List<Long> verLabelIds = bookList.stream().filter(s -> s.getVerLabelId() != null).map(UserBookInfoItemVO::getVerLabelId).distinct().collect(Collectors.toList());
List<Long> areaLabelIds = bookList.stream().filter(s -> s.getAreaLabelId() != null).map(UserBookInfoItemVO::getAreaLabelId).distinct().collect(Collectors.toList());
if (!ListUtils.isEmpty(graLabelIds)) {
bookLabelIds.addAll(graLabelIds);
}
if (!ListUtils.isEmpty(subLabelIds)) {
bookLabelIds.addAll(subLabelIds);
}
if (!ListUtils.isEmpty(verLabelIds)) {
bookLabelIds.addAll(verLabelIds);
}
if (!ListUtils.isEmpty(areaLabelIds)) {
bookLabelIds.addAll(areaLabelIds);
}
//小号id
List<RobotBaseInfoVO> robotBaseInfoVOS = new ArrayList<>();
RobotBaseInfoVO robotBaseInfoVO = new RobotBaseInfoVO();
robotBaseInfoVO.setRobotId(userBookInfoVO.getAltId());
robotBaseInfoVOS.add(robotBaseInfoVO);
userBookInfoVO.setRobotBaseInfoVOS(robotBaseInfoVOS);
altIdList.addAll(Arrays.asList(userBookInfoVO.getAltId()));
}
//标签,小号信息
Map<Long, BookLabel> bookLabelMap =new HashMap<>();
if (!ListUtils.isEmpty(bookLabelIds)){
bookLabelMap = bookLabelDao.getMapByIds(bookLabelIds);
}
Map<String, GroupUserDTO> groupUserDTOMap =new HashMap<>();
if (!ListUtils.isEmpty(altIdList)){
groupUserDTOMap = wechatGroupConsr.mapRobotInfoByIdList(altIdList);
}
for (UserBookInfoVO userBookInfoVO: list){
if (!MapUtils.isEmpty(bookLabelMap)){
for (UserBookInfoItemVO bookInfoItemVO : userBookInfoVO.getBookInfoItemVOS()) {
if (null != bookInfoItemVO.getGraLabelId() && bookLabelMap.containsKey(bookInfoItemVO.getGraLabelId())) {
bookInfoItemVO.setGraLabelName(bookLabelMap.get(bookInfoItemVO.getGraLabelId()).getName());
}
if (null != bookInfoItemVO.getSubLabelId() && bookLabelMap.containsKey(bookInfoItemVO.getSubLabelId())) {
bookInfoItemVO.setSubLabelName(bookLabelMap.get(bookInfoItemVO.getSubLabelId()).getName());
}
if (null != bookInfoItemVO.getVerLabelId() && bookLabelMap.containsKey(bookInfoItemVO.getVerLabelId())) {
bookInfoItemVO.setVerLabelName(bookLabelMap.get(bookInfoItemVO.getVerLabelId()).getName());
}
if (null != bookInfoItemVO.getAreaLabelId() && bookLabelMap.containsKey(bookInfoItemVO.getAreaLabelId())) {
bookInfoItemVO.setAreaLabelName(bookLabelMap.get(bookInfoItemVO.getAreaLabelId()).getName());
}
}
}
for (RobotBaseInfoVO robotBaseInfoVO : userBookInfoVO.getRobotBaseInfoVOS()) {
if (!MapUtils.isEmpty(groupUserDTOMap) && groupUserDTOMap.containsKey(robotBaseInfoVO.getRobotId())) {
GroupUserDTO groupUserDTO = groupUserDTOMap.get(robotBaseInfoVO.getRobotId());
robotBaseInfoVO.setNickName(groupUserDTO.getNickName());
robotBaseInfoVO.setHeadPic(groupUserDTO.getHeadPic());
robotBaseInfoVO.setSex(groupUserDTO.getSex());
}
}
}
}
} }
package com.pcloud.book.group.tools;
import com.pcloud.book.util.common.ThreadPoolUtils;
import com.pcloud.wechatgroup.selfrobot.dto.SelfRobotMsgRecord;
import com.pcloud.wechatgroup.selfrobot.service.SelfRobotService;
import com.sdk.wxgroup.SendArticleMessageVO;
import com.sdk.wxgroup.SendGroupInviteVO;
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.stereotype.Component;
import javax.annotation.PostConstruct;
import lombok.extern.slf4j.Slf4j;
/**
* @描述:1v1个人号发送消息
* @作者:zhuyajie
* @创建时间:18:02 2019/11/13
* @版本:1.0
*/
@Slf4j
@Component
public class SendSelfMsgTools {
@Autowired
private SelfRobotService selfRobotService;
private static SendSelfMsgTools sendSelfMsgTools;
/**
* 发送文本消息
*/
public static void sendTextMessage(SendTextMessageVO sendTextMessageVO) {
WxGroupSDK.sendTextMessage(sendTextMessageVO);
ThreadPoolUtils.OTHER_THREAD_POOL.execute(() -> {
SelfRobotMsgRecord selfRobotMsgRecord = new SelfRobotMsgRecord();
selfRobotMsgRecord.setMessageType(1);//文本
selfRobotMsgRecord.setTextContent(sendTextMessageVO.getContent());
selfRobotMsgRecord.setWxId(sendTextMessageVO.getAltId());
selfRobotMsgRecord.setWxUserId(sendTextMessageVO.getWxGroupId());
insertMsg(selfRobotMsgRecord);
});
}
/**
* 发送入群邀请链接
*/
public static void sendGroupInvite(SendGroupInviteVO sendGroupInviteVO) {
WxGroupSDK.sendGroupInvite(sendGroupInviteVO);
ThreadPoolUtils.OTHER_THREAD_POOL.execute(() -> {
SelfRobotMsgRecord selfRobotMsgRecord = new SelfRobotMsgRecord();
selfRobotMsgRecord.setMessageType(11);//链接
selfRobotMsgRecord.setWxId(sendGroupInviteVO.getAltId());
selfRobotMsgRecord.setWxUserId(sendGroupInviteVO.getWxId());
selfRobotMsgRecord.setTitle("邀请你加入群聊");
insertMsg(selfRobotMsgRecord);
});
}
/**
* 发送链接
* @param sendArticleMessageVO
*/
public static void sendArticleMessage(SendArticleMessageVO sendArticleMessageVO){
WxGroupSDK.sendArticleMessage(sendArticleMessageVO);
ThreadPoolUtils.OTHER_THREAD_POOL.execute(() -> {
SelfRobotMsgRecord selfRobotMsgRecord = new SelfRobotMsgRecord();
selfRobotMsgRecord.setMessageType(11);//链接
selfRobotMsgRecord.setWxId(sendArticleMessageVO.getAltId());
selfRobotMsgRecord.setWxUserId(sendArticleMessageVO.getWxGroupId());
selfRobotMsgRecord.setTitle(sendArticleMessageVO.getTitle());
selfRobotMsgRecord.setUrl(sendArticleMessageVO.getLinkUrl());
insertMsg(selfRobotMsgRecord);
});
}
/**
* 发送图片
*/
public static void sendPicMessage(SendPicMessageVO sendPicMessageVO){
WxGroupSDK.sendPicMessage(sendPicMessageVO);
ThreadPoolUtils.OTHER_THREAD_POOL.execute(() -> {
SelfRobotMsgRecord selfRobotMsgRecord = new SelfRobotMsgRecord();
selfRobotMsgRecord.setMessageType(2);//图片
selfRobotMsgRecord.setWxId(sendPicMessageVO.getAltId());
selfRobotMsgRecord.setWxUserId(sendPicMessageVO.getWxGroupId());
selfRobotMsgRecord.setResourceUrl(sendPicMessageVO.getPicUrl());
insertMsg(selfRobotMsgRecord);
});
}
/**
* 保存发送记录
*/
public static void insertMsg(SelfRobotMsgRecord selfRobotMsgRecord) {
try {
sendSelfMsgTools.selfRobotService.addSelfRobotMsg(selfRobotMsgRecord);
} catch (Exception e) {
log.error("添加个人号消息记录失败" + e.getMessage(), e);
}
}
@PostConstruct
public void init() {
sendSelfMsgTools = this;
sendSelfMsgTools.selfRobotService = this.selfRobotService;
}
}
package com.pcloud.book.group.vo;
import com.pcloud.common.dto.BaseDto;
import lombok.Data;
/**
* @描述:小号基本信息
* @作者:zhuyajie
* @创建时间:15:58 2020/1/20
* @版本:1.0
*/
@Data
public class RobotBaseInfoVO extends BaseDto{
/**
* 小号id
*/
private String robotId;
/**
* 昵称
*/
private String nickName;
/**
* 头像
*/
private String headPic;
/**
* 性别
*/
private Integer sex;
}
...@@ -45,4 +45,45 @@ public class UserBookInfoItemVO extends BaseDto{ ...@@ -45,4 +45,45 @@ public class UserBookInfoItemVO extends BaseDto{
* 编辑id * 编辑id
*/ */
private Long adviserId; private Long adviserId;
/**
* 年级标签id
*/
private Long graLabelId;
/**
* 科目标签id
*/
private Long subLabelId;
/**
* 版本标签id
*/
private Long verLabelId;
/**
* 地域标签id
*/
private Long areaLabelId;
/**
* 年级标签名称
*/
private String graLabelName;
/**
* 科目标签名称
*/
private String subLabelName;
/**
* 版本标签名称
*/
private String verLabelName;
/**
* 地域标签名称
*/
private String areaLabelName;
} }
...@@ -43,4 +43,8 @@ public class UserBookInfoVO extends BaseDto { ...@@ -43,4 +43,8 @@ public class UserBookInfoVO extends BaseDto {
* 扫码书刊信息 * 扫码书刊信息
*/ */
private List<UserBookInfoItemVO> bookInfoItemVOS; private List<UserBookInfoItemVO> bookInfoItemVOS;
/**
* 关联小号
*/
private List<RobotBaseInfoVO> robotBaseInfoVOS;
} }
...@@ -22,7 +22,6 @@ import com.pcloud.book.group.dto.SendGuideMessageDTO; ...@@ -22,7 +22,6 @@ import com.pcloud.book.group.dto.SendGuideMessageDTO;
import com.pcloud.book.group.entity.*; import com.pcloud.book.group.entity.*;
import com.pcloud.book.group.enums.CipherTypeEnum; import com.pcloud.book.group.enums.CipherTypeEnum;
import com.pcloud.book.group.enums.TouchTypeEnum; import com.pcloud.book.group.enums.TouchTypeEnum;
import com.pcloud.book.group.tools.SendSelfMsgTools;
import com.pcloud.book.group.tools.SendWeixinRequestTools; import com.pcloud.book.group.tools.SendWeixinRequestTools;
import com.pcloud.book.group.vo.GroupQrcodeBaseInfoVO; import com.pcloud.book.group.vo.GroupQrcodeBaseInfoVO;
import com.pcloud.book.keywords.biz.BookGuideBiz; import com.pcloud.book.keywords.biz.BookGuideBiz;
...@@ -191,7 +190,7 @@ public class BookGuideBizImpl implements BookGuideBiz { ...@@ -191,7 +190,7 @@ public class BookGuideBizImpl implements BookGuideBiz {
vo.setAltId(agreeAddUserDTO.getRobotWxId()); vo.setAltId(agreeAddUserDTO.getRobotWxId());
vo.setWxGroupId(agreeAddUserDTO.getUserWxId()); vo.setWxGroupId(agreeAddUserDTO.getUserWxId());
vo.setIp(agreeAddUserDTO.getIp()); vo.setIp(agreeAddUserDTO.getIp());
SendSelfMsgTools.sendTextMessage(vo); WxGroupSDK.sendTextMessage(vo);
return; return;
} }
if (StringUtil.isBlank(cipher)) { if (StringUtil.isBlank(cipher)) {
......
...@@ -37,7 +37,6 @@ import com.pcloud.book.group.enums.JoinGroupTypeEnum; ...@@ -37,7 +37,6 @@ import com.pcloud.book.group.enums.JoinGroupTypeEnum;
import com.pcloud.book.group.enums.QrcodeStatusEnum; import com.pcloud.book.group.enums.QrcodeStatusEnum;
import com.pcloud.book.group.enums.TouchTypeEnum; import com.pcloud.book.group.enums.TouchTypeEnum;
import com.pcloud.book.group.enums.UpdateStatusEnum; import com.pcloud.book.group.enums.UpdateStatusEnum;
import com.pcloud.book.group.tools.SendSelfMsgTools;
import com.pcloud.book.group.tools.SendWeixinRequestTools; import com.pcloud.book.group.tools.SendWeixinRequestTools;
import com.pcloud.book.group.vo.ClassifyNameVO; import com.pcloud.book.group.vo.ClassifyNameVO;
import com.pcloud.book.group.vo.ClassifyVO; import com.pcloud.book.group.vo.ClassifyVO;
...@@ -58,6 +57,7 @@ import com.pcloud.book.keywords.vo.QrWeixinParam; ...@@ -58,6 +57,7 @@ import com.pcloud.book.keywords.vo.QrWeixinParam;
import com.pcloud.book.keywords.vo.SetKeywordVO; import com.pcloud.book.keywords.vo.SetKeywordVO;
import com.pcloud.book.keywords.vo.SetRankVO; import com.pcloud.book.keywords.vo.SetRankVO;
import com.pcloud.book.keywords.vo.UpdateKeywordVO; import com.pcloud.book.keywords.vo.UpdateKeywordVO;
import com.pcloud.book.reading.biz.ReadingActivityBiz;
import com.pcloud.book.util.common.ThreadPoolUtils; import com.pcloud.book.util.common.ThreadPoolUtils;
import com.pcloud.channelcenter.base.constants.ChannelEnum; import com.pcloud.channelcenter.base.constants.ChannelEnum;
import com.pcloud.channelcenter.qrcode.service.QrcodeSceneService; import com.pcloud.channelcenter.qrcode.service.QrcodeSceneService;
...@@ -82,14 +82,7 @@ import com.pcloud.resourcecenter.product.dto.ProductDto; ...@@ -82,14 +82,7 @@ import com.pcloud.resourcecenter.product.dto.ProductDto;
import com.pcloud.resourcecenter.product.dto.ProductTypeDto; import com.pcloud.resourcecenter.product.dto.ProductTypeDto;
import com.pcloud.wechatgroup.group.dto.RobotReplyDTO; import com.pcloud.wechatgroup.group.dto.RobotReplyDTO;
import com.pcloud.wechatgroup.message.dto.SendTextDTO; import com.pcloud.wechatgroup.message.dto.SendTextDTO;
import com.sdk.wxgroup.ChangeNameVO; import com.sdk.wxgroup.*;
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 lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.MapUtils; import org.apache.commons.collections.MapUtils;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
...@@ -176,6 +169,8 @@ public class BookKeywordBizImpl implements BookKeywordBiz { ...@@ -176,6 +169,8 @@ public class BookKeywordBizImpl implements BookKeywordBiz {
private String envStr; private String envStr;
@Autowired @Autowired
private SelfRobotKeywordReplyDao selfRobotKeywordReplyDao; private SelfRobotKeywordReplyDao selfRobotKeywordReplyDao;
@Autowired
private ReadingActivityBiz readingActivityBiz;
/** /**
* 字符串切割长度 * 字符串切割长度
*/ */
...@@ -586,7 +581,8 @@ public class BookKeywordBizImpl implements BookKeywordBiz { ...@@ -586,7 +581,8 @@ public class BookKeywordBizImpl implements BookKeywordBiz {
|| (envStr.toUpperCase().equals("UAT") && sendTextDTO.getWxId().equals("wxid_51ff9f099l9a22") && new Long(449L).equals(bookGroupCipherUser.getBookGroupId())) || (envStr.toUpperCase().equals("UAT") && sendTextDTO.getWxId().equals("wxid_51ff9f099l9a22") && new Long(449L).equals(bookGroupCipherUser.getBookGroupId()))
|| (envStr.toUpperCase().equals("PRO") && sendTextDTO.getWxId().equals("wxid_x8i897ryabo722") && new Long(23735L).equals(bookGroupCipherUser.getBookGroupId())))){ || (envStr.toUpperCase().equals("PRO") && sendTextDTO.getWxId().equals("wxid_x8i897ryabo722") && new Long(23735L).equals(bookGroupCipherUser.getBookGroupId())))){
BookGroup bookGroup = bookGroupDao.getByShortBookName(content); BookGroup bookGroup = bookGroupDao.getByShortBookName(content);
if (bookGroup == null) { Boolean isActivityKeyword = readingActivityBiz.isKeyWord(sendTextDTO);
if (bookGroup == null && !isActivityKeyword) {
//既不是关键词也不是识别码 //既不是关键词也不是识别码
String altIdAndWxId = sendTextDTO.getWxId() + "_" + sendTextDTO.getWechatUserId(); String altIdAndWxId = sendTextDTO.getWxId() + "_" + sendTextDTO.getWechatUserId();
Integer send = JedisClusterUtils.hgetJson2Class(REPLY_GUIDE_CACHE, altIdAndWxId, Integer.class); Integer send = JedisClusterUtils.hgetJson2Class(REPLY_GUIDE_CACHE, altIdAndWxId, Integer.class);
...@@ -599,7 +595,8 @@ public class BookKeywordBizImpl implements BookKeywordBiz { ...@@ -599,7 +595,8 @@ public class BookKeywordBizImpl implements BookKeywordBiz {
} }
}else { }else {
BookGroup bookGroup = bookGroupDao.getByShortBookName(content); BookGroup bookGroup = bookGroupDao.getByShortBookName(content);
if (bookGroup == null) { Boolean isActivityKeyword = readingActivityBiz.isKeyWord(sendTextDTO);
if (bookGroup == null && !isActivityKeyword) {
sendText(sendTextDTO, "抱歉呀!小睿不太明白你在说什么。嘿嘿!你的语言太高级了,待小睿深度解析一下,我还在不断学习呢!或者你看看,是不是关键词输错了呢?麻烦你再输一遍正确的关键词?比如回复我背单词。"); sendText(sendTextDTO, "抱歉呀!小睿不太明白你在说什么。嘿嘿!你的语言太高级了,待小睿深度解析一下,我还在不断学习呢!或者你看看,是不是关键词输错了呢?麻烦你再输一遍正确的关键词?比如回复我背单词。");
} }
} }
...@@ -975,7 +972,7 @@ public class BookKeywordBizImpl implements BookKeywordBiz { ...@@ -975,7 +972,7 @@ public class BookKeywordBizImpl implements BookKeywordBiz {
vo.setAltId(robotId); vo.setAltId(robotId);
vo.setWxGroupId(userWxId); vo.setWxGroupId(userWxId);
vo.setIp(ip); vo.setIp(ip);
SendSelfMsgTools.sendTextMessage(vo); WxGroupSDK.sendTextMessage(vo);
log.info("发送收到暗号后的本书介绍 : {}", vo); log.info("发送收到暗号后的本书介绍 : {}", vo);
} }
...@@ -1044,7 +1041,7 @@ public class BookKeywordBizImpl implements BookKeywordBiz { ...@@ -1044,7 +1041,7 @@ public class BookKeywordBizImpl implements BookKeywordBiz {
sendGroupInviteVO.setWxId(sendTextDTO.getWechatUserId()); sendGroupInviteVO.setWxId(sendTextDTO.getWechatUserId());
sendGroupInviteVO.setWxGroupId(wxGroupId); sendGroupInviteVO.setWxGroupId(wxGroupId);
sendGroupInviteVO.setIp(sendTextDTO.getIp()); sendGroupInviteVO.setIp(sendTextDTO.getIp());
SendSelfMsgTools.sendGroupInvite(sendGroupInviteVO); WxGroupSDK.sendGroupInvite(sendGroupInviteVO);
log.info("[同意加好友发送欢迎语] 发送进群链接 sendGroupInviteVO:{}", sendGroupInviteVO); log.info("[同意加好友发送欢迎语] 发送进群链接 sendGroupInviteVO:{}", sendGroupInviteVO);
} }
......
...@@ -2,6 +2,7 @@ package com.pcloud.book.mq.topic; ...@@ -2,6 +2,7 @@ package com.pcloud.book.mq.topic;
import com.pcloud.book.group.biz.GroupQrcodeBiz; import com.pcloud.book.group.biz.GroupQrcodeBiz;
import com.pcloud.book.mq.config.MQTopicConumer; import com.pcloud.book.mq.config.MQTopicConumer;
import com.pcloud.book.reading.biz.ReadingActivityBiz;
import com.pcloud.common.core.aspect.ParamLog; import com.pcloud.common.core.aspect.ParamLog;
import com.pcloud.common.exceptions.BizException; import com.pcloud.common.exceptions.BizException;
import com.pcloud.wechatgroup.message.dto.AddWXGroupDTO; import com.pcloud.wechatgroup.message.dto.AddWXGroupDTO;
...@@ -21,6 +22,8 @@ public class AddWxGroupListener { ...@@ -21,6 +22,8 @@ public class AddWxGroupListener {
@Autowired @Autowired
private GroupQrcodeBiz groupQrcodeBiz; private GroupQrcodeBiz groupQrcodeBiz;
@Autowired
private ReadingActivityBiz readingActivityBiz;
/** /**
* 接收微信用户进群消息 * 接收微信用户进群消息
...@@ -32,6 +35,7 @@ public class AddWxGroupListener { ...@@ -32,6 +35,7 @@ public class AddWxGroupListener {
if (addWXGroupDTO == null || addWXGroupDTO.getWechatGroupId() == null || addWXGroupDTO.getMemberCount() == null) if (addWXGroupDTO == null || addWXGroupDTO.getWechatGroupId() == null || addWXGroupDTO.getMemberCount() == null)
return; return;
groupQrcodeBiz.addOneUser(addWXGroupDTO.getWechatGroupId(), addWXGroupDTO.getMemberCount(),addWXGroupDTO.getNickName(), addWXGroupDTO.getWxId(), addWXGroupDTO.getIp()); groupQrcodeBiz.addOneUser(addWXGroupDTO.getWechatGroupId(), addWXGroupDTO.getMemberCount(),addWXGroupDTO.getNickName(), addWXGroupDTO.getWxId(), addWXGroupDTO.getIp());
readingActivityBiz.activityUserJoinGroup(addWXGroupDTO);
} catch (Exception e) { } catch (Exception e) {
LOGGER.error("接收微信用户进群消息失败" + e.getMessage(), e); LOGGER.error("接收微信用户进群消息失败" + e.getMessage(), e);
} }
......
...@@ -2,10 +2,10 @@ package com.pcloud.book.mq.topic; ...@@ -2,10 +2,10 @@ package com.pcloud.book.mq.topic;
import com.pcloud.book.consumer.wechatgroup.WechatGroupConsr; import com.pcloud.book.consumer.wechatgroup.WechatGroupConsr;
import com.pcloud.book.group.biz.BookGroupClassifyBiz; import com.pcloud.book.group.biz.BookGroupClassifyBiz;
import com.pcloud.book.group.biz.GroupQrcodeBiz;
import com.pcloud.book.group.dto.GroupClassifyQrcodeDTO; import com.pcloud.book.group.dto.GroupClassifyQrcodeDTO;
import com.pcloud.book.keywords.biz.BookKeywordBiz; import com.pcloud.book.keywords.biz.BookKeywordBiz;
import com.pcloud.book.mq.config.MQTopicConumer; import com.pcloud.book.mq.config.MQTopicConumer;
import com.pcloud.book.reading.biz.ReadingActivityBiz;
import com.pcloud.book.riddle.biz.RiddleRecordBiz; import com.pcloud.book.riddle.biz.RiddleRecordBiz;
import com.pcloud.book.util.common.ThreadPoolUtils; import com.pcloud.book.util.common.ThreadPoolUtils;
import com.pcloud.book.weixinclock.biz.WeixinClockBiz; import com.pcloud.book.weixinclock.biz.WeixinClockBiz;
...@@ -46,9 +46,9 @@ public class WxGroupSendTextListener { ...@@ -46,9 +46,9 @@ public class WxGroupSendTextListener {
@Autowired @Autowired
private WeixinClockBiz weixinClockBiz; private WeixinClockBiz weixinClockBiz;
@Autowired @Autowired
private GroupQrcodeBiz groupQrcodeBiz;
@Autowired
private BookGroupClassifyBiz bookGroupClassifyBiz; private BookGroupClassifyBiz bookGroupClassifyBiz;
@Autowired
private ReadingActivityBiz readingActivityBiz;
/** /**
* 接收微信用户进群消息 * 接收微信用户进群消息
...@@ -73,6 +73,8 @@ public class WxGroupSendTextListener { ...@@ -73,6 +73,8 @@ public class WxGroupSendTextListener {
} }
//猜谜语 //猜谜语
riddleRecordBiz.riddleProcess(sendTextDTO); riddleRecordBiz.riddleProcess(sendTextDTO);
//共读活动
readingActivityBiz.receiveKeyWord(sendTextDTO);
} }
} catch (Exception e) { } catch (Exception e) {
LOGGER.error("接收用户发送文本消息失败" + e.getMessage(), e); LOGGER.error("接收用户发送文本消息失败" + e.getMessage(), e);
......
...@@ -8,7 +8,6 @@ import com.pcloud.book.group.dto.BookGroupDTO; ...@@ -8,7 +8,6 @@ import com.pcloud.book.group.dto.BookGroupDTO;
import com.pcloud.book.group.dto.SelfRobotBookGroupDTO; import com.pcloud.book.group.dto.SelfRobotBookGroupDTO;
import com.pcloud.book.group.entity.WeixinQrcodeGeneration; import com.pcloud.book.group.entity.WeixinQrcodeGeneration;
import com.pcloud.book.group.set.GroupSet; import com.pcloud.book.group.set.GroupSet;
import com.pcloud.book.group.tools.SendSelfMsgTools;
import com.pcloud.book.group.vo.UserBookInfoVO; import com.pcloud.book.group.vo.UserBookInfoVO;
import com.pcloud.book.push.biz.SelfPushBiz; import com.pcloud.book.push.biz.SelfPushBiz;
import com.pcloud.book.push.constant.PushConstant; import com.pcloud.book.push.constant.PushConstant;
...@@ -251,7 +250,7 @@ public class SelfPushBizImpl implements SelfPushBiz { ...@@ -251,7 +250,7 @@ public class SelfPushBizImpl implements SelfPushBiz {
sendTextMessageVO.setAltId(altId); sendTextMessageVO.setAltId(altId);
sendTextMessageVO.setWxGroupId(userWxId); sendTextMessageVO.setWxGroupId(userWxId);
sendTextMessageVO.setIp(getIpByRobot(altId)); sendTextMessageVO.setIp(getIpByRobot(altId));
SendSelfMsgTools.sendTextMessage(sendTextMessageVO); WxGroupSDK.sendTextMessage(sendTextMessageVO);
return; return;
} }
if (ItemTypeEnum.LINK.value.equals(itemType)) { if (ItemTypeEnum.LINK.value.equals(itemType)) {
...@@ -265,7 +264,7 @@ public class SelfPushBizImpl implements SelfPushBiz { ...@@ -265,7 +264,7 @@ public class SelfPushBizImpl implements SelfPushBiz {
sendArticleMessageVO.setPicUrl(selfPushItem.getLinkImageUrl()); sendArticleMessageVO.setPicUrl(selfPushItem.getLinkImageUrl());
sendArticleMessageVO.setTitle(selfPushItem.getLinkTitle()); sendArticleMessageVO.setTitle(selfPushItem.getLinkTitle());
sendArticleMessageVO.setIp(getIpByRobot(altId)); sendArticleMessageVO.setIp(getIpByRobot(altId));
SendSelfMsgTools.sendArticleMessage(sendArticleMessageVO); WxGroupSDK.sendArticleMessage(sendArticleMessageVO);
return; return;
} }
if (ItemTypeEnum.APP.value.equals(itemType)) { if (ItemTypeEnum.APP.value.equals(itemType)) {
...@@ -278,7 +277,7 @@ public class SelfPushBizImpl implements SelfPushBiz { ...@@ -278,7 +277,7 @@ public class SelfPushBizImpl implements SelfPushBiz {
sendPicMessageVO.setWxGroupId(userWxId); sendPicMessageVO.setWxGroupId(userWxId);
sendPicMessageVO.setPicUrl(selfPushItem.getImageUrl()); sendPicMessageVO.setPicUrl(selfPushItem.getImageUrl());
sendPicMessageVO.setIp(getIpByRobot(altId)); sendPicMessageVO.setIp(getIpByRobot(altId));
SendSelfMsgTools.sendPicMessage(sendPicMessageVO); WxGroupSDK.sendPicMessage(sendPicMessageVO);
return; return;
} }
} }
......
package com.pcloud.book.reading.biz;
import com.pcloud.book.reading.dto.AssignGroupDTO;
import com.pcloud.book.reading.dto.ReadingActivityAdditionParamDTO;
import com.pcloud.book.reading.dto.ReadingActivityBaseParamDTO;
import com.pcloud.book.reading.dto.ReadingActivityDTO;
import com.pcloud.common.page.PageBeanNew;
import com.pcloud.wechatgroup.message.dto.AddWXGroupDTO;
import com.pcloud.wechatgroup.message.dto.SendTextDTO;
import com.sdk.wxgroup.CollectionVO;
import com.sdk.wxgroup.ReceiptMoneyVO;
/**
* @描述:共读活动
* @作者:zhuyajie
* @创建时间:17:43 2020/1/14
* @版本:1.0
*/
public interface ReadingActivityBiz {
/**
* 收到转账
* @param vo 转账信息
*/
void receiveMoney(CollectionVO vo);
/**
* 创建
* @param readingActivityBaseParamDTO
*/
Long add(ReadingActivityBaseParamDTO readingActivityBaseParamDTO);
/**
* 修改
* @param readingActivityBaseParamDTO
*/
void update(ReadingActivityBaseParamDTO readingActivityBaseParamDTO);
/**
* 添加高级设置
* @param readingActivityAdditionParamDTO
*/
void updateAdditionSetting(ReadingActivityAdditionParamDTO readingActivityAdditionParamDTO);
/**
* 定时任务回调-发送消息
* @param methodType
* @param activityId
*/
void sendQuartzMsg(String methodType, Long activityId);
/**
* 接收个人号关键词消息
*/
public void receiveKeyWord(SendTextDTO sendTextDTO);
/**
* 根据小号获取对应wxgroup ip
* @param altId
* @return
*/
String getIP(String altId);
/**
* 根据id查询
* @param id
* @return
*/
ReadingActivityDTO getById(Long id);
/**
* 定时任务回调-打卡每日提醒
* @param activityId
*/
void sendClockRemind(Long activityId);
/**
* 分页查询活动
*/
PageBeanNew<ReadingActivityDTO> getList(Integer currentPage, Integer numPerPage);
/**
* 分配群
* @param assignGroupDTO
*/
void assignGroup(AssignGroupDTO assignGroupDTO);
/**
* 活动用户进群
* @param addWXGroupDTO
*/
void activityUserJoinGroup(AddWXGroupDTO addWXGroupDTO);
/**
* 是否是入群关键词
* @param sendTextDTO
* @return
*/
Boolean isKeyWord(SendTextDTO sendTextDTO);
}
package com.pcloud.book.reading.dao;
import com.pcloud.book.reading.entity.BookGroupCollection;
import com.pcloud.common.core.dao.BaseDao;
public interface BookGroupCollectionDao extends BaseDao<BookGroupCollection> {
/**
* 根据TransferId获取转账信息
* @param transferId
* @return
*/
BookGroupCollection getByTransferId(String transferId);
}
\ No newline at end of file
package com.pcloud.book.reading.dao;
import com.pcloud.book.reading.entity.ReadingActivity;
import com.pcloud.common.core.dao.BaseDao;
/**
* @描述:共读活动基本设置
* @作者:zhuyajie
* @创建时间:17:26 2020/1/14
* @版本:1.0
*/
public interface ReadingActivityDao extends BaseDao<ReadingActivity> {
/**
* 更新高级设置
* @param readingActivity
*/
public void updateAdditionSetting(ReadingActivity readingActivity);
/**
* 根据主题获取活动信息
* @param theme
* @return
*/
ReadingActivity getByTheme(String theme);
/**
* @param theme
* @return
*/
Boolean themeExist(String theme);
/**
* 根据活动主题和入群条件获取
* @param theme
* @return
*/
ReadingActivity getByThemeAndJoinCondition(String theme, Integer joinCondition);
/**
* 根据关键词查活动
* @param altId
* @param wxUserId
* @param text
* @return
*/
ReadingActivity getJoinActivityByKeyword(String altId,String wxUserId,String text);
}
package com.pcloud.book.reading.dao;
import com.pcloud.book.reading.entity.ReadingGroupCreate;
import com.pcloud.common.core.dao.BaseDao;
public interface ReadingGroupCreateDao extends BaseDao<ReadingGroupCreate> {
/**
* 更改使用状态
* @param wxGroupId
*/
public void updateStateByWxGroupId(String wxGroupId, Integer useState);
}
package com.pcloud.book.reading.dao;
import com.pcloud.book.reading.entity.ReadingGroup;
import com.pcloud.common.core.dao.BaseDao;
import java.util.List;
/**
* @描述:活动关联群
* @作者:zhuyajie
* @创建时间:15:30 2020/1/15
* @版本:1.0
*/
public interface ReadingGroupDao extends BaseDao<ReadingGroup> {
/**
* 根据活动id获取群,有微信群
* @param activityId
* @return
*/
public List<ReadingGroup> getByActivityId(Long activityId);
/**
* 根据群id查
* @param wxGroupId
* @return
*/
public ReadingGroup getByWxGroupId(String wxGroupId);
/**
* 更新微信群id
* @param wxGroupId
* @param id
*/
public void updateWxGroupIdById(String wxGroupId, Long id);
/**
* 最近无群id的群
* @return
*/
public ReadingGroup getLatestNullGroup(String altId);
/**
* getAllByActivityId
* @param activityId
* @return
*/
List<ReadingGroup> getAllByActivityId(Long activityId);
/**
* 更新群名称
* @param wxGroupName
* @param id
*/
public void updateGroupName(String wxGroupName, Long id);
}
package com.pcloud.book.reading.dao;
import com.pcloud.book.reading.entity.ReadingGroupRobot;
import com.pcloud.common.core.dao.BaseDao;
import java.util.List;
/**
* @描述:群小号关联表
* @作者:zhuyajie
* @创建时间:13:42 2020/1/20
* @版本:1.0
*/
public interface ReadingGroupRobotDao extends BaseDao<ReadingGroupRobot> {
/**
* 更新微信群id
* @param wxGroupId
* @param groupId
*/
public void updateWxGroupByGroupId(String wxGroupId, Long groupId);
/**
* 设置群主
* @param altId
* @param groupId
*/
public void setMaster(String altId, Long groupId);
/**
* 获取一个小号
* @param wxGroupId
* @return
*/
String getMasterRobotByWxGroupId(String wxGroupId);
/**
* 根据群成员数量查符合的群
* @param count
* @return
*/
List<Long> getGroupIdsByCount(Integer count);
/**
* 该群是否符合要求
* @param groupId
* @param altIds
* @return
*/
Boolean groupExist(Long groupId, List<String> altIds);
/**
* 根据活动id查询
* @param activityId
* @return
*/
List<ReadingGroupRobot> getByActivityId(Long activityId);
/**
* groupId查询
* @param groupId
* @return
*/
List<ReadingGroupRobot> getByGroupId(Long groupId);
}
package com.pcloud.book.reading.dao;
import com.pcloud.book.reading.entity.ReadingInvite;
import com.pcloud.common.core.dao.BaseDao;
import java.util.List;
/**
* @描述:邀请语设置
* @作者:zhuyajie
* @创建时间:17:28 2020/1/14
* @版本:1.0
*/
public interface ReadingInviteDao extends BaseDao<ReadingInvite> {
/**
* 根据活动id查询
* @param activityId
* @return
*/
public List<ReadingInvite> getByActivityId(Long activityId);
/**
* 删除
* @param activityId
*/
void deleteByActivityId(Long activityId);
}
package com.pcloud.book.reading.dao;
import com.pcloud.book.reading.dto.ActivityUserBookDTO;
import com.pcloud.book.reading.dto.ActivityUserCountDTO;
import com.pcloud.book.reading.entity.ReadingUser;
import com.pcloud.common.core.dao.BaseDao;
import java.util.List;
/**
* @描述:共读活动邀请用户
* @作者:zhuyajie
* @创建时间:17:31 2020/1/14
* @版本:1.0
*/
public interface ReadingUserDao extends BaseDao<ReadingUser> {
/**
* 根据活动id查询
* @param activityId
* @return
*/
List<ReadingUser> getByActivityId(Long activityId, Integer joinState);
/**
* 修改用户参加状态
* @param joinState
* @param wxUserId
* @param activityId
*/
public void updateJoinState(Integer joinState, String wxUserId, String activityId);
/**
* 查询活动人数列表
*/
List<ActivityUserCountDTO> getUserCountsByActivityIds(List<Long> activityIds);
/**
* 查用户id
* @param activityIds
* @return
*/
List<String> getWxUserIdByActivityIds(List<Long> activityIds);
/**
* 批量获取活动读者书籍
*/
List<ActivityUserBookDTO> getBooksByActivityIds(List<Long> activityIds);
}
package com.pcloud.book.reading.dao.impl;
import com.pcloud.book.reading.dao.BookGroupCollectionDao;
import com.pcloud.book.reading.entity.BookGroupCollection;
import com.pcloud.common.core.dao.BaseDaoImpl;
import org.springframework.stereotype.Component;
@Component("bookGroupCollectionDao")
public class BookGroupCollectionDaoImpl extends BaseDaoImpl<BookGroupCollection> implements BookGroupCollectionDao {
@Override
public BookGroupCollection getByTransferId(String transferId) {
return this.getSqlSession().selectOne("getByTransferId", transferId);
}
}
package com.pcloud.book.reading.dao.impl;
import com.pcloud.book.reading.dao.ReadingActivityDao;
import com.pcloud.book.reading.entity.ReadingActivity;
import com.pcloud.common.core.dao.BaseDaoImpl;
import org.springframework.stereotype.Component;
import java.util.HashMap;
import java.util.Map;
/**
* @描述:共读活动基本设置
* @作者:zhuyajie
* @创建时间:17:27 2020/1/14
* @版本:1.0
*/
@Component("readingActivityDao")
public class ReadingActivityDaoImpl extends BaseDaoImpl<ReadingActivity> implements ReadingActivityDao {
@Override
public void updateAdditionSetting(ReadingActivity readingActivity) {
getSessionTemplate().update(getStatement("updateAdditionSetting"), readingActivity);
}
@Override
public ReadingActivity getByTheme(String theme) {
return this.getSqlSession().selectOne("getByTheme", theme);
}
public Boolean themeExist(String theme) {
return getSessionTemplate().selectOne(getStatement("themeExist"), theme);
}
@Override
public ReadingActivity getByThemeAndJoinCondition(String theme, Integer joinCondition) {
Map<String, Object> map = new HashMap<>();
map.put("theme", theme);
map.put("joinCondition", joinCondition);
return this.getSqlSession().selectOne("getByThemeAndJoinCondition", map);
}
@Override
public ReadingActivity getJoinActivityByKeyword(String altId, String wxUserId, String text) {
Map<String, Object> map = new HashMap<>();
map.put("altId", altId);
map.put("wxUserId", wxUserId);
map.put("joinKeyword", text);
return getSessionTemplate().selectOne(getStatement("getJoinActivityByKeyword"), map);
}
}
package com.pcloud.book.reading.dao.impl;
import com.pcloud.book.reading.dao.ReadingGroupCreateDao;
import com.pcloud.book.reading.entity.ReadingGroupCreate;
import com.pcloud.common.core.dao.BaseDaoImpl;
import org.springframework.stereotype.Component;
import java.util.HashMap;
import java.util.Map;
@Component("readingGroupCreateDao")
public class ReadingGroupCreateDaoImpl extends BaseDaoImpl<ReadingGroupCreate> implements ReadingGroupCreateDao {
@Override
public void updateStateByWxGroupId(String wxGroupId, Integer useState) {
Map<String, Object>map=new HashMap<>();
map.put("wxGroupId",wxGroupId);
map.put("useState",useState);
getSessionTemplate().update(getStatement("updateStateByWxGroupId"),map);
}
}
package com.pcloud.book.reading.dao.impl;
import com.pcloud.book.reading.dao.ReadingGroupDao;
import com.pcloud.book.reading.entity.ReadingGroup;
import com.pcloud.common.core.dao.BaseDaoImpl;
import org.springframework.stereotype.Component;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @描述:活动关联群
* @作者:zhuyajie
* @创建时间:15:30 2020/1/15
* @版本:1.0
*/
@Component("readingGroupDao")
public class ReadingGroupDaoImpl extends BaseDaoImpl<ReadingGroup> implements ReadingGroupDao {
@Override
public List<ReadingGroup> getByActivityId(Long activityId) {
return getSessionTemplate().selectList(getStatement("getByActivityId"), activityId);
}
@Override
public ReadingGroup getByWxGroupId(String wxGroupId) {
return getSessionTemplate().selectOne(getStatement("getByWxGroupId"), wxGroupId);
}
@Override
public void updateWxGroupIdById(String wxGroupId, Long id) {
Map<String, Object> map = new HashMap<>();
map.put("wxGroupId", wxGroupId);
map.put("id", id);
getSessionTemplate().update(getStatement("updateWxGroupIdById"), map);
}
@Override
public ReadingGroup getLatestNullGroup(String altId) {
return getSessionTemplate().selectOne(getStatement("getLatestNullGroup"), altId);
}
@Override
public List<ReadingGroup> getAllByActivityId(Long activityId) {
return getSessionTemplate().selectList(getStatement("getAllByActivityId"), activityId);
}
@Override
public void updateGroupName(String wxGroupName, Long id) {
Map<String, Object> map = new HashMap<>();
map.put("wxGroupName", wxGroupName);
map.put("id", id);
getSessionTemplate().update(getStatement("updateGroupName"), map);
}
}
package com.pcloud.book.reading.dao.impl;
import com.pcloud.book.reading.dao.ReadingGroupRobotDao;
import com.pcloud.book.reading.entity.ReadingGroupRobot;
import com.pcloud.common.core.dao.BaseDaoImpl;
import org.springframework.stereotype.Component;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @描述:群小号关联表
* @作者:zhuyajie
* @创建时间:13:43 2020/1/20
* @版本:1.0
*/
@Component("readingGroupRobotDao")
public class ReadingGroupRobotDaoImpl extends BaseDaoImpl<ReadingGroupRobot> implements ReadingGroupRobotDao {
@Override
public void updateWxGroupByGroupId(String wxGroupId, Long groupId) {
Map<String, Object> map = new HashMap<>();
map.put("wxGroupId", wxGroupId);
map.put("groupId", groupId);
getSessionTemplate().update(getStatement("updateWxGroupByGroupId"), map);
}
@Override
public void setMaster(String altId, Long groupId) {
Map<String, Object> map = new HashMap<>();
map.put("altId", altId);
map.put("groupId", groupId);
getSessionTemplate().update(getStatement("setMaster"), map);
}
@Override
public String getMasterRobotByWxGroupId(String wxGroupId) {
return getSessionTemplate().selectOne(getStatement("getMasterRobotByWxGroupId"), wxGroupId);
}
@Override
public List<Long> getGroupIdsByCount(Integer count) {
return getSessionTemplate().selectList(getStatement("getGroupIdsByCount"), count);
}
@Override
public Boolean groupExist(Long groupId, List<String> altIds) {
Map<String,Object> map = new HashMap<>();
map.put("groupId",groupId);
map.put("altIds",altIds);
return getSessionTemplate().selectOne(getStatement("groupExist"), map);
}
@Override
public List<ReadingGroupRobot> getByActivityId(Long activityId) {
return getSessionTemplate().selectList(getStatement("getByActivityId"), activityId);
}
@Override
public List<ReadingGroupRobot> getByGroupId(Long groupId) {
return getSessionTemplate().selectList(getStatement("getByGroupId"), groupId);
}
}
package com.pcloud.book.reading.dao.impl;
import com.pcloud.book.reading.dao.ReadingInviteDao;
import com.pcloud.book.reading.entity.ReadingInvite;
import com.pcloud.common.core.dao.BaseDaoImpl;
import org.springframework.stereotype.Component;
import java.util.List;
/**
* @描述:邀请语设置
* @作者:zhuyajie
* @创建时间:17:29 2020/1/14
* @版本:1.0
*/
@Component("readingInviteDao")
public class ReadingInviteDaoImpl extends BaseDaoImpl<ReadingInvite> implements ReadingInviteDao {
@Override
public List<ReadingInvite> getByActivityId(Long activityId) {
return getSessionTemplate().selectList(getStatement("getByActivityId"), activityId);
}
@Override
public void deleteByActivityId(Long activityId) {
getSessionTemplate().delete(getStatement("deleteByActivityId"), activityId);
}
}
package com.pcloud.book.reading.dao.impl;
import com.pcloud.book.reading.dao.ReadingUserDao;
import com.pcloud.book.reading.dto.ActivityUserBookDTO;
import com.pcloud.book.reading.dto.ActivityUserCountDTO;
import com.pcloud.book.reading.entity.ReadingUser;
import com.pcloud.common.core.dao.BaseDaoImpl;
import org.springframework.stereotype.Component;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @描述:共读活动邀请用户
* @作者:zhuyajie
* @创建时间:17:31 2020/1/14
* @版本:1.0
*/
@Component("readingUserDao")
public class ReadingUserDaoImpl extends BaseDaoImpl<ReadingUser> implements ReadingUserDao {
@Override
public List<ReadingUser> getByActivityId(Long activityId, Integer joinState) {
Map<String,Object> map = new HashMap<>();
map.put("activityId",activityId);
map.put("joinState",joinState);
return getSessionTemplate().selectList(getStatement("getByActivityId"),map);
}
@Override
public void updateJoinState(Integer joinState, String wxUserId, String activityId) {
Map<String, Object> map = new HashMap<>();
map.put("activityId", activityId);
map.put("wxUserId", wxUserId);
map.put("joinState", joinState);
getSessionTemplate().update(getStatement("updateJoinState"), map);
}
@Override
public List<ActivityUserCountDTO> getUserCountsByActivityIds(List<Long> activityIds) {
Map<String, Object> map = new HashMap<>();
map.put("activityIds", activityIds);
return getSessionTemplate().selectList(getStatement("getUserCountsByActivityIds"), map);
}
@Override
public List<String> getWxUserIdByActivityIds(List<Long> activityIds) {
Map<String, Object> map = new HashMap<>();
map.put("activityIds", activityIds);
return getSessionTemplate().selectList(getStatement("getWxUserIdByActivityIds"), map);
}
@Override
public List<ActivityUserBookDTO> getBooksByActivityIds(List<Long> activityIds) {
Map<String, Object> map = new HashMap<>();
map.put("activityIds", activityIds);
return getSessionTemplate().selectList(getStatement("getBooksByActivityIds"), map);
}
}
package com.pcloud.book.reading.dto;
import io.swagger.annotations.ApiModel;
import lombok.Data;
/**
* @Description
* @Author ruansiyuan
* @Date 2020/1/21 14:26
**/
@ApiModel("活动书刊")
@Data
public class ActivityUserBookDTO {
private Long bookId;
private String bookName;
private Long activityId;
}
package com.pcloud.book.reading.dto;
import io.swagger.annotations.ApiModel;
import lombok.Data;
/**
* @Description
* @Author ruansiyuan
* @Date 2020/1/20 11:01
**/
@Data
@ApiModel("活动和活动人数")
public class ActivityUserCountDTO {
private Long activityId;
private Integer count;
}
package com.pcloud.book.reading.dto;
import com.pcloud.common.dto.BaseDto;
import java.util.List;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @描述:小号用户分组
* @作者:zhuyajie
* @创建时间:18:02 2020/1/19
* @版本:1.0
*/
@ApiModel("小号用户分组")
@Data
public class GroupingUserDTO extends BaseDto {
@ApiModelProperty("小号id")
private String altId;
@ApiModelProperty("昵称")
private String altNickName;
@ApiModelProperty("头像")
private String altHeadPic;
@ApiModelProperty("性别")
private Integer altSex;
@ApiModelProperty("用户列表")
private List<UserBaseDTO> userBaseDTOS;
}
package com.pcloud.book.reading.dto;
import com.pcloud.common.dto.BaseDto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @描述:高级设置
* @作者:zhuyajie
* @创建时间:15:31 2020/1/19
* @版本:1.0
*/
@Data
@ApiModel("高级设置")
public class ReadingActivityAdditionParamDTO extends BaseDto{
@ApiModelProperty("活动id")
private Long id;
@ApiModelProperty("猜谜语开启状态")
private Boolean riddleOpen;
@ApiModelProperty("奖励开启")
private Boolean awardOpen;
@ApiModelProperty("奖励文案")
private String awardText;
@ApiModelProperty("奖励图片地址")
private String awardPic;
@ApiModelProperty("打卡开启")
private Boolean clockOpen;
@ApiModelProperty("打卡每日提醒时间")
private String clockRemindTime;
@ApiModelProperty("打卡提醒内容")
private String clockRemindContent;
@ApiModelProperty("打卡链接")
private String clockLink;
@ApiModelProperty("打卡应用或作品id")
private Long clockServeId;
@ApiModelProperty("打卡应用或作品")
private String clockServeType;
@ApiModelProperty("打卡成果是否发送")
private Boolean clockResultOpen;
}
package com.pcloud.book.reading.dto;
import com.pcloud.book.reading.entity.ReadingInvite;
import com.pcloud.book.reading.entity.ReadingUser;
import com.pcloud.common.dto.BaseDto;
import java.math.BigDecimal;
import java.util.List;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
@ApiModel("共读活动基本设置")
public class ReadingActivityBaseParamDTO extends BaseDto{
@ApiModelProperty("活动id")
private Long id;
@ApiModelProperty("活动主题")
private String theme;
@ApiModelProperty("品牌方id")
private Long brandId;
@ApiModelProperty("入群条件(1无限制2回复关键词3转账)")
private Integer joinCondition;
@ApiModelProperty("入群关键词")
private String joinKeyword;
@ApiModelProperty("入群转账金额")
private BigDecimal joinAmount;
@ApiModelProperty("入群方式(1邀请链接/2群二维码)")
private Integer joinType;
@ApiModelProperty("入群二维码图片")
private String joinQrcodePic;
@ApiModelProperty("群规类型(1文本2文件)")
private Integer ruleType;
@ApiModelProperty("群规")
private String rule;
@ApiModelProperty("群规文件资源id")
private String ruleResourceId;
@ApiModelProperty("活动开始时间")
private String startTime;
@ApiModelProperty("开场语类型(1文本2文件)")
private Integer startSloganType;
@ApiModelProperty("开场语")
private String startSlogan;
@ApiModelProperty("开场语资源id")
private String startResourceId;
@ApiModelProperty("活动结束时间")
private String endTime;
@ApiModelProperty("结束语(1文本2文件)")
private Integer endSloganType;
@ApiModelProperty("结束语")
private String endSlogan;
@ApiModelProperty("结束语资源id")
private String endResourceId;
@ApiModelProperty("邀请时间")
private String inviteTime;
@ApiModelProperty("邀请语设置")
private List<ReadingInvite> inviteList;
@ApiModelProperty("邀请用户")
private List<ReadingUser> userList;
@ApiModelProperty("创建人")
private Long createUser;
}
\ No newline at end of file
package com.pcloud.book.reading.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.pcloud.book.reading.entity.ReadingInvite;
import com.pcloud.book.reading.entity.ReadingUser;
import com.pcloud.common.dto.BaseDto;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @描述:共读活动
* @作者:zhuyajie
* @创建时间:10:36 2020/1/19
* @版本:1.0
*/
@Data
@ApiModel("共读活动基本设置")
public class ReadingActivityDTO extends BaseDto {
@ApiModelProperty("主键")
private Long id;
@ApiModelProperty("活动主题")
private String theme;
@ApiModelProperty("品牌方id")
private Long brandId;
@ApiModelProperty("品牌方名称")
private String brandName;
@ApiModelProperty("入群条件(1无限制2回复关键词3转账)")
private Integer joinCondition;
@ApiModelProperty("入群关键词")
private String joinKeyword;
@ApiModelProperty("入群转账金额")
private BigDecimal joinAmount;
@ApiModelProperty("入群方式(1邀请链接/2群二维码)")
private Integer joinType;
@ApiModelProperty("入群二维码图片")
private String joinQrcodePic;
@ApiModelProperty("群规类型(1文本2文件)")
private Integer ruleType;
@ApiModelProperty("群规")
private String rule;
@ApiModelProperty("群规文件资源id")
private String ruleResourceId;
@ApiModelProperty("群规文件资源名称")
private String ruleResourceName;
@ApiModelProperty("群规文件资源大小")
private Long ruleResourceSize;
@ApiModelProperty("活动开始时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date startTime;
@ApiModelProperty("开场语类型(1文本2文件)")
private Integer startSloganType;
@ApiModelProperty("开场语")
private String startSlogan;
@ApiModelProperty("开场语资源id")
private String startResourceId;
@ApiModelProperty("开场语资源名称")
private String startResourceName;
@ApiModelProperty("开场语资源大小")
private Long startResourceSize;
@ApiModelProperty("活动结束时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date endTime;
@ApiModelProperty("结束语(1文本2文件)")
private Integer endSloganType;
@ApiModelProperty("结束语")
private String endSlogan;
@ApiModelProperty("结束语资源id")
private String endResourceId;
@ApiModelProperty("结束语资源名称")
private String endResourceName;
@ApiModelProperty("结束语资源大小")
private Long endResourceSize;
@ApiModelProperty("猜谜语开启状态")
private Boolean riddleOpen;
@ApiModelProperty("奖励开启")
private Boolean awardOpen;
@ApiModelProperty("奖励文案")
private String awardText;
@ApiModelProperty("奖励图片地址")
private String awardPic;
@ApiModelProperty("打卡开启")
private Boolean clockOpen;
@ApiModelProperty("打卡每日提醒时间")
private String clockRemindTime;
@ApiModelProperty("打卡提醒内容")
private String clockRemindContent;
@ApiModelProperty("打卡链接")
private String clockLink;
@ApiModelProperty("打卡商品或作品id")
private Long clockServeId;
@ApiModelProperty("打卡应用或作品")
private String clockServeType;
@ApiModelProperty("打卡成果是否发送")
private Boolean clockResultOpen;
@ApiModelProperty("创建时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date createTime;
@ApiModelProperty("创建人")
private Long createUser;
@ApiModelProperty("更新时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date updateTime;
@ApiModelProperty("邀请时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date inviteTime;
@ApiModelProperty("邀请语设置")
private List<ReadingInvite> inviteList;
@ApiModelProperty("邀请用户")
private List<ReadingUser> userList;
@ApiModelProperty("小号用户分组")
private List<GroupingUserDTO> groupingUserList;
@ApiModelProperty("活动用户人数")
private Integer userCount;
@ApiModelProperty("活动用户书籍")
private List<ActivityUserBookDTO> activityUserBookDTOS;
}
package com.pcloud.book.reading.dto;
import com.pcloud.common.dto.BaseDto;
import lombok.Data;
/**
* @描述:用户基本信息
* @作者:zhuyajie
* @创建时间:18:12 2020/1/19
* @版本:1.0
*/
@Data
public class UserBaseDTO extends BaseDto {
/**
* 微信用户ID
*/
private String wxUserId;
/**
* 昵称
*/
private String nickName;
/**
* 头像
*/
private String headPic;
/**
* 性别
*/
private Integer sex;
}
package com.pcloud.book.reading.entity;
import com.pcloud.common.entity.BaseEntity;
import java.math.BigDecimal;
import java.util.Date;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
@EqualsAndHashCode(callSuper = true)
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class BookGroupCollection extends BaseEntity {
private static final long serialVersionUID = -6375016882263463248L;
private BigDecimal amount;
private Integer status;
private String transferId;
private String collectionRobotId;
private String createUser;
private Date createTime;
private String updateUser;
private Date updateTime;
}
\ No newline at end of file
package com.pcloud.book.reading.entity;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.pcloud.common.entity.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
@Data
@ApiModel("共读活动基本设置")
public class ReadingActivity extends BaseEntity {
@ApiModelProperty("活动主题")
private String theme;
@ApiModelProperty("品牌方id")
private Long brandId;
@ApiModelProperty("入群条件(1无限制2回复关键词3转账)")
private Integer joinCondition;
@ApiModelProperty("入群关键词")
private String joinKeyword;
@ApiModelProperty("入群转账金额")
private BigDecimal joinAmount;
@ApiModelProperty("入群方式(link/qrcode)")
private Integer joinType;
@ApiModelProperty("入群二维码图片")
private String joinQrcodePic;
@ApiModelProperty("群规类型(1文本2文件)")
private Integer ruleType;
@ApiModelProperty("群规")
private String rule;
@ApiModelProperty("群规文件资源id")
private String ruleResourceId;
@ApiModelProperty("活动开始时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date startTime;
@ApiModelProperty("开场语类型(1文本2文件)")
private Integer startSloganType;
@ApiModelProperty("开场语")
private String startSlogan;
@ApiModelProperty("开场语资源id")
private String startResourceId;
@ApiModelProperty("活动结束时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date endTime;
@ApiModelProperty("结束语(1文本2文件)")
private Integer endSloganType;
@ApiModelProperty("结束语")
private String endSlogan;
@ApiModelProperty("结束语资源id")
private String endResourceId;
@ApiModelProperty("猜谜语开启状态")
private Boolean riddleOpen;
@ApiModelProperty("奖励开启")
private Boolean awardOpen;
@ApiModelProperty("奖励文案")
private String awardText;
@ApiModelProperty("奖励图片地址")
private String awardPic;
@ApiModelProperty("打卡开启")
private Boolean clockOpen;
@ApiModelProperty("打卡每日提醒时间")
private String clockRemindTime;
@ApiModelProperty("打卡提醒内容")
private String clockRemindContent;
@ApiModelProperty("打卡链接")
private String clockLink;
@ApiModelProperty("打卡商品或作品id")
private Long clockServeId;
@ApiModelProperty("打卡应用或作品")
private String clockServeType;
@ApiModelProperty("打卡成果是否发送")
private Boolean clockResultOpen;
@ApiModelProperty("创建时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date createTime;
@ApiModelProperty("创建人")
private Long createUser;
@ApiModelProperty("更新时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date updateTime;
}
\ No newline at end of file
package com.pcloud.book.reading.entity;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.pcloud.common.entity.BaseEntity;
import java.util.Date;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
@ApiModel("共读活动关联群")
public class ReadingGroup extends BaseEntity{
@ApiModelProperty("群id")
private String wxGroupId;
@ApiModelProperty("群名称")
private String wxGroupName;
@ApiModelProperty("活动id")
private Long activityId;
@ApiModelProperty("创建时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date createTime;
@ApiModelProperty("创建人")
private Long createUser;
}
\ No newline at end of file
package com.pcloud.book.reading.entity;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.pcloud.common.entity.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.util.Date;
@ApiModel("共读活动创建好的群")
public class ReadingGroupCreate extends BaseEntity {
@ApiModelProperty("群id")
private String wxGroupId;
@ApiModelProperty("群主id")
private String masterId;
@ApiModelProperty("创建时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date createTime;
@ApiModelProperty("使用状态")
private Integer useState;
public String getWxGroupId() {
return wxGroupId;
}
public void setWxGroupId(String wxGroupId) {
this.wxGroupId = wxGroupId;
}
public String getMasterId() {
return masterId;
}
public void setMasterId(String masterId) {
this.masterId = masterId;
}
@Override
public Date getCreateTime() {
return createTime;
}
@Override
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public Integer getUseState() {
return useState;
}
public void setUseState(Integer useState) {
this.useState = useState;
}
}
package com.pcloud.book.reading.entity;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.pcloud.common.entity.BaseEntity;
import java.util.Date;
import lombok.Data;
/**
* 群小号关联表
*/
@Data
public class ReadingGroupRobot extends BaseEntity{
/**
* 群id
*/
private String wxGroupId;
/**
* 小号id
*/
private String altId;
/**
* 群id
*/
private Long groupId;
/**
* 是否群主
*/
private Boolean isMaster;
/**
* 创建时间
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date createTime;
}
\ No newline at end of file
package com.pcloud.book.reading.entity;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.pcloud.common.entity.BaseEntity;
import java.util.Date;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
@ApiModel("邀请语设置")
public class ReadingInvite extends BaseEntity{
@ApiModelProperty("共读活动id")
private Long activityId;
@ApiModelProperty("邀请时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date inviteTime;
@ApiModelProperty("发送类型(1文本2文件)")
private Integer inviteType;
@ApiModelProperty("邀请语")
private String inviteContent;
@ApiModelProperty("邀请语资源id")
private String inviteResourceId;
@ApiModelProperty("邀请语资源大小")
private Long inviteResourceSize;
@ApiModelProperty("邀请语资源路径名称")
private String inviteResourceName;
@ApiModelProperty("创建时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date createTime;
@ApiModelProperty("创建人")
private Long createUser;
}
\ No newline at end of file
package com.pcloud.book.reading.entity;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.pcloud.common.entity.BaseEntity;
import java.util.Date;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
@ApiModel("共读活动用户")
public class ReadingUser extends BaseEntity{
@ApiModelProperty("共读活动id")
private Long activityId;
@ApiModelProperty("用户id")
private String wxUserId;
@ApiModelProperty("小号id")
private String altId;
@ApiModelProperty("参与状态")
private Integer joinState;
@ApiModelProperty("创建时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date createTime;
@ApiModelProperty("创建人")
private Long createUser;
}
\ No newline at end of file
package com.pcloud.book.reading.enums;
/**
* @描述:发送内容类型
* @作者:zhuyajie
* @创建时间:17:41 2020/1/14
* @版本:1.0
*/
public enum ContentTypeEnum {
/**
* 文本
*/
TEXT(1),
/**
* 文件
*/
FILE(2);
public Integer value;
ContentTypeEnum(Integer value) {
this.value = value;
}
}
package com.pcloud.book.reading.enums;
/**
* @描述:入群条件
* @作者:zhuyajie
* @创建时间:17:33 2020/1/14
* @版本:1.0
*/
public enum JoinConditionEnum {
/**
* 1无限制
*/
NO(1),
/**
* 2回复关键词
*/
KEYWORD(2),
/**
* 3转账
*/
TRANSFER(3);
public Integer value;
JoinConditionEnum(Integer value) {
this.value = value;
}
}
package com.pcloud.book.reading.enums;
/**
* @描述:参加活动状态
* @作者:zhuyajie
* @创建时间:17:46 2020/1/15
* @版本:1.0
*/
public enum JoinStateEnum {
/**
* 未参加
*/
NOT_JOIN(0),
/**
* 参加
*/
JOIN(1);
public Integer value;
JoinStateEnum(Integer value) {
this.value = value;
}
}
package com.pcloud.book.reading.enums;
/**
* @描述:入群方式
* @作者:zhuyajie
* @创建时间:17:39 2020/1/14
* @版本:1.0
*/
public enum JoinTypeEnum {
/**
* 发邀请链接
*/
LINK(1),
/**
* 扫群二维码
*/
QRCODE(2);
public Integer value;
JoinTypeEnum(Integer value) {
this.value = value;
}
}
package com.pcloud.book.reading.facade;
import com.pcloud.book.base.exception.BookBizException;
import com.pcloud.book.reading.biz.ReadingActivityBiz;
import com.pcloud.book.reading.check.ParamCheck;
import com.pcloud.book.reading.dto.AssignGroupDTO;
import com.pcloud.book.reading.dto.ReadingActivityAdditionParamDTO;
import com.pcloud.book.reading.dto.ReadingActivityBaseParamDTO;
import com.pcloud.book.reading.dto.ReadingActivityDTO;
import com.pcloud.common.core.aspect.ParamLog;
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 com.sdk.wxgroup.CollectionVO;
import com.pcloud.common.utils.string.StringUtil;
import org.springframework.beans.factory.annotation.Autowired;
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;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import lombok.extern.slf4j.Slf4j;
/**
* @描述:共读活动外部接口
* @作者:zhuyajie
* @创建时间:17:45 2020/1/14
* @版本:1.0
*/
@Api("共读活动")
@RestController("readingActivityFacade")
@RequestMapping("readingActivity")
@Slf4j
public class ReadingActivityFacade {
@Autowired
private ReadingActivityBiz readingActivityBiz;
@Autowired
private ParamCheck paramCheck;
@PostMapping("receiveMoney")
public ResponseDto<Void> receiveMoney(@RequestBody CollectionVO vo) {
readingActivityBiz.receiveMoney(vo);
return new ResponseDto<>();
}
@ApiOperation("创建共读活动")
@PostMapping("add")
public ResponseDto<?> add(@RequestHeader("token") String token, @RequestBody @ApiParam ReadingActivityBaseParamDTO readingActivityBaseParamDTO) throws PermissionException {
Long partyId = (Long) SessionUtil.getVlaue(token, SessionUtil.PARTY_ID);
paramCheck.checkAddParam(readingActivityBaseParamDTO);
readingActivityBaseParamDTO.setCreateUser(partyId);
Long id = readingActivityBiz.add(readingActivityBaseParamDTO);
return new ResponseDto<>(id);
}
@ApiOperation("修改共读活动")
@PostMapping("update")
public ResponseDto<?> update(@RequestHeader("token") String token, @RequestBody @ApiParam ReadingActivityBaseParamDTO readingActivityBaseParamDTO) throws PermissionException {
SessionUtil.getToken4Redis(token);
paramCheck.checkAddParam(readingActivityBaseParamDTO);
paramCheck.checkUpdateParam(readingActivityBaseParamDTO);
readingActivityBiz.update(readingActivityBaseParamDTO);
return new ResponseDto<>();
}
@ApiOperation("共读活动高级设置")
@PostMapping("updateAdditionSetting")
public ResponseDto<?> updateAdditionSetting(@RequestHeader("token") String token, @RequestBody @ApiParam ReadingActivityAdditionParamDTO readingActivityAdditionParamDTO) throws PermissionException {
SessionUtil.getToken4Redis(token);
paramCheck.checkAdditionParam(readingActivityAdditionParamDTO);
readingActivityBiz.updateAdditionSetting(readingActivityAdditionParamDTO);
return new ResponseDto<>();
}
@ApiOperation("根据id查询")
@GetMapping("getById")
public ResponseDto<ReadingActivityDTO> getById(@RequestHeader("token") String token, @RequestParam("id") Long id) throws PermissionException {
SessionUtil.getToken4Redis(token);
if (null == id) {
throw new BookBizException(BookBizException.PARAM_IS_NULL, "id为空");
}
ReadingActivityDTO activityDTO = readingActivityBiz.getById(id);
return new ResponseDto<>(activityDTO);
}
@ApiOperation("查询列表")
@GetMapping("getList")
public ResponseDto<PageBeanNew<ReadingActivityDTO>> getList(
@RequestHeader("token") String token,
@RequestParam("currentPage") Integer currentPage,
@RequestParam("numPerPage") Integer numPerPage
) throws PermissionException {
SessionUtil.getToken4Redis(token);
PageBeanNew<ReadingActivityDTO> page = readingActivityBiz.getList(currentPage, numPerPage);
return new ResponseDto<>(page);
}
@ApiOperation("分配群")
@PostMapping("assignGroup")
@ParamLog("接收分配群参数")
public ResponseDto<?> assignGroup(@RequestBody @ApiParam AssignGroupDTO assignGroupDTO) {
if (null == assignGroupDTO || StringUtil.isEmpty(assignGroupDTO.getWxGroupId()) || StringUtil.isEmpty(assignGroupDTO.getMasterId())) {
throw new BookBizException(BookBizException.PARAM_IS_NULL, "参数缺失");
}
readingActivityBiz.assignGroup(assignGroupDTO);
return new ResponseDto<>();
}
}
package com.pcloud.book.reading.service.impl;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.TypeReference;
import com.pcloud.book.reading.biz.ReadingActivityBiz;
import com.pcloud.book.reading.service.ReadingActivityService;
import com.pcloud.common.core.aspect.ParamLog;
import io.swagger.annotations.ApiParam;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.Map;
/**
* @描述:共读活动
* @作者:zhuyajie
* @创建时间:16:00 2020/1/15
* @版本:1.0
*/
@RestController("readingActivityService")
@RequestMapping("readingActivityService")
public class ReadingActivityServiceImpl implements ReadingActivityService {
@Autowired
private ReadingActivityBiz readingActivityBiz;
@Override
@PostMapping("sendInviteMsg")
@ParamLog("定时任务发邀请语")
public void sendInviteMsg(@RequestBody @ApiParam Map<String, Object> map) {
Long activityId = JSON.parseObject(JSON.toJSONString(map.get("activityId")), new TypeReference<Long>() {
});
if (null == activityId) {
return;
}
readingActivityBiz.sendQuartzMsg("invite", activityId);
}
@Override
@PostMapping("sendStartMsg")
@ParamLog("定时任务发开场语")
public void sendStartMsg(@RequestBody @ApiParam Map<String, Object> map) {
Long activityId = JSON.parseObject(JSON.toJSONString(map.get("activityId")), new TypeReference<Long>() {
});
if (null == activityId) {
return;
}
readingActivityBiz.sendQuartzMsg("start", activityId);
}
@Override
@PostMapping("sendEndMsg")
@ParamLog("定时任务发结束语")
public void sendEndMsg(@RequestBody @ApiParam Map<String, Object> map) {
Long activityId = JSON.parseObject(JSON.toJSONString(map.get("activityId")), new TypeReference<Long>() {
});
if (null == activityId) {
return;
}
readingActivityBiz.sendQuartzMsg("end", activityId);
}
@Override
@ParamLog("定时任务发打卡每日提醒")
@PostMapping("/sendClockRemind")
public void sendClockRemind(@RequestBody @ApiParam Map<String, Object> map) {
Long activityId = JSON.parseObject(JSON.toJSONString(map.get("activityId")), new TypeReference<Long>() {
});
if (null == activityId) {
return;
}
readingActivityBiz.sendClockRemind(activityId);
}
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfiguration
PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
"http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
<generatorConfiguration>
<classPathEntry
location="D:\maven\repository\mysql\mysql-connector-java\5.1.40\mysql-connector-java-5.1.40.jar"/>
<context id="my" targetRuntime="MyBatis3">
<commentGenerator>
<property name="suppressDate" value="false"/>
<property name="suppressAllComments" value="true"/>
</commentGenerator>
<jdbcConnection driverClass="com.mysql.jdbc.Driver"
connectionURL="jdbc:mysql://192.168.92.41:3306/book" userId="root"
password="LGSC2016.lgsc"/>
<javaModelGenerator targetPackage="com.pcloud.book"
targetProject="D:\project\RAYS\pcloud-book\pcloud-service-book\src\main\java">
<property name="enableSubPackages" value="true"/>
<property name="trimStrings" value="true"/>
</javaModelGenerator>
<sqlMapGenerator targetPackage="com.pcloud.book"
targetProject="D:\project\RAYS\pcloud-book\pcloud-service-book\src\main\java">
<property name="enableSubPackages" value="true"/>
</sqlMapGenerator>
<javaClientGenerator targetPackage="com.pcloud.book"
targetProject="D:\project\RAYS\pcloud-book\pcloud-service-book\src\main\java" type="XMLMAPPER">
<property name="enableSubPackages" value="true"/>
</javaClientGenerator>
<table tableName="book_group_collection" domainObjectName="BookGroupCollection"
enableCountByExample="false" enableUpdateByExample="false"
enableDeleteByExample="false" enableSelectByExample="false"
selectByExampleQueryId="false">
</table>
</context>
</generatorConfiguration>
\ No newline at end of file
...@@ -139,4 +139,15 @@ ...@@ -139,4 +139,15 @@
LIMIT 1 LIMIT 1
</select> </select>
<!--根据id集合获取列表-->
<select id="getMapByIds" parameterType="map" resultMap="BaseResultMap">
select <include refid="Base_Column_List"/> from
advertising_brand
where
is_delete = 0
and id in
<foreach collection="brandIds" item="item" open="(" separator="," close=")">
${item}
</foreach>
</select>
</mapper> </mapper>
\ No newline at end of file
...@@ -1864,6 +1864,18 @@ ...@@ -1864,6 +1864,18 @@
<if test="adviserId!=null"> <if test="adviserId!=null">
AND a.ADVISER_ID = #{adviserId} AND a.ADVISER_ID = #{adviserId}
</if> </if>
<if test="graLabelId!=null">
and a.graLabel_id =#{graLabelId}
</if>
<if test="subLabelId!=null">
and a.subLabel_id =#{subLabelId}
</if>
<if test="verLabelId!=null">
and a.verLabel_id =#{verLabelId}
</if>
<if test="areaLabelId!=null">
and a.areaLabel_id =#{areaLabelId}
</if>
ORDER BY ORDER BY
g.create_time DESC g.create_time DESC
</select> </select>
......
...@@ -546,4 +546,85 @@ ...@@ -546,4 +546,85 @@
alt_id alt_id
</select> </select>
<!--只查个人号1.0版本读者-->
<select id="listUser4ReadingActivity" parameterType="map" resultType="com.pcloud.book.group.vo.UserBookInfoVO">
SELECT
s.wx_user_id wxUserId,
s.alt_id altId
FROM
book_group_cipher_user s
JOIN (
SELECT
MAX(u.id) uid
FROM
book_group_cipher_user u
LEFT JOIN book_group g ON u.book_group_id = g.id
WHERE
g.join_group_type = 3
<if test="bookIds != null and bookIds.size>0">
AND g.book_id IN
<foreach collection="bookIds" open="(" close=")" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="wxUserIds != null and wxUserIds.size>0">
AND u.wx_user_id IN
<foreach collection="wxUserIds" open="(" close=")" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="robotId != null">
AND u.alt_id = #{robotId}
</if>
<if test="invitedFilter != null and invitedFilter == 1">
AND u.wx_user_id NOT IN
(SELECT DISTINCT wx_user_id FROM reading_user)
</if>
GROUP BY
u.wx_user_id
) AS a ON s.id = a.uid
GROUP BY
s.wx_user_id
ORDER BY
s.create_time DESC,
s.id DESC
<if test="pageNum>=0 and numPerPage>0">
LIMIT #{pageNum}, #{numPerPage}
</if>
</select>
<select id="getScanBookInfoByUserNew" parameterType="map" resultType="com.pcloud.book.group.vo.UserBookInfoItemVO">
SELECT
u.book_group_id bookGroupId,
b.BOOK_NAME bookName,
a.GRA_LABEL_ID graLabelId,
a.SUB_LABEL_ID subLabelId,
a.VER_LABEL_ID verLabelId,
a.AREA_LABEL_ID areaLabelId
FROM
book_group_cipher_user u
LEFT JOIN book_group g ON u.book_group_id = g.id
LEFT JOIN book b ON g.book_id = b.BOOK_ID
LEFT JOIN book_adviser a ON g.book_id = a.BOOK_ID
AND g.create_user = a.ADVISER_ID
AND g.channel_id = a.CHANNEL_ID
WHERE
u.wx_user_id = #{wxUserId}
AND u.alt_id = #{altId}
AND a.GRA_LABEL_ID >0
GROUP BY
u.book_group_id
ORDER BY
g.id DESC
</select>
<select id="getAltIdListByUserId" resultType="string" parameterType="string">
SELECT DISTINCT
alt_id
FROM
book_group_cipher_user
WHERE
wx_user_id = #{wxUserId}
</select>
</mapper> </mapper>
\ No newline at end of file
...@@ -26,6 +26,14 @@ ...@@ -26,6 +26,14 @@
create_user,create_time,update_time,is_delete,riddle_open create_user,create_time,update_time,is_delete,riddle_open
</sql> </sql>
<select id="getGroupUserNum" parameterType="string" resultMap="BaseResultMap">
select weixin_group_id, user_number FROM
book_group_qrcode where weixin_group_id in
<foreach collection="list" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
</select>
<update id="updateGroupCount" parameterType="map"> <update id="updateGroupCount" parameterType="map">
update book_group_qrcode set user_number = #{userNumber} where weixin_group_id = #{weixinGroupId} update book_group_qrcode set user_number = #{userNumber} where weixin_group_id = #{weixinGroupId}
</update> </update>
......
<?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.reading.dao.impl.BookGroupCollectionDaoImpl">
<resultMap id="BaseResultMap" type="com.pcloud.book.reading.entity.BookGroupCollection">
<id column="id" property="id" jdbcType="INTEGER"/>
<result column="amount" property="amount" jdbcType="DECIMAL"/>
<result column="status" property="status" jdbcType="BIT"/>
<result column="transfer_id" property="transferId" jdbcType="VARCHAR"/>
<result column="collection_robot_id" property="collectionRobotId" jdbcType="VARCHAR"/>
<result column="create_user" property="createUser" jdbcType="VARCHAR"/>
<result column="create_time" property="createTime" jdbcType="TIMESTAMP"/>
<result column="update_user" property="updateUser" jdbcType="VARCHAR"/>
<result column="update_time" property="updateTime" jdbcType="TIMESTAMP"/>
</resultMap>
<sql id="Base_Column_List">
id, amount, status, transfer_id, collection_robot_id, create_user, create_time, update_user,
update_time
</sql>
<select id="getById" resultMap="BaseResultMap" parameterType="java.lang.Integer">
select
<include refid="Base_Column_List"/>
from book_group_collection
where id = #{id,jdbcType=INTEGER}
</select>
<select id="getByTransferId"
resultType="com.pcloud.book.reading.entity.BookGroupCollection">
select
<include refid="Base_Column_List"/>
from book_group_collection
where transfer_id = #{transferId,jdbcType=VARCHAR}
</select>
<delete id="deleteById" parameterType="java.lang.Integer">
delete from book_group_collection
where id = #{id,jdbcType=INTEGER}
</delete>
<insert id="insert" parameterType="com.pcloud.book.reading.entity.BookGroupCollection">
insert into book_group_collection (id, amount, status,
transfer_id, collection_robot_id, create_user,
create_time, update_user, update_time
)
values (#{id,jdbcType=INTEGER}, #{amount,jdbcType=DECIMAL}, #{status,jdbcType=BIT},
#{transferId,jdbcType=VARCHAR}, #{collectionRobotId,jdbcType=VARCHAR}, #{createUser,jdbcType=VARCHAR},
#{createTime,jdbcType=TIMESTAMP}, #{updateUser,jdbcType=VARCHAR}, #{updateTime,jdbcType=TIMESTAMP}
)
</insert>
<update id="update"
parameterType="com.pcloud.book.reading.entity.BookGroupCollection">
update book_group_collection
<set>
<if test="amount != null">
amount = #{amount,jdbcType=DECIMAL},
</if>
<if test="status != null">
status = #{status,jdbcType=BIT},
</if>
<if test="transferId != null">
transfer_id = #{transferId,jdbcType=VARCHAR},
</if>
<if test="collectionRobotId != null">
collection_robot_id = #{collectionRobotId,jdbcType=VARCHAR},
</if>
<if test="createUser != null">
create_user = #{createUser,jdbcType=VARCHAR},
</if>
<if test="createTime != null">
create_time = #{createTime,jdbcType=TIMESTAMP},
</if>
<if test="updateUser != null">
update_user = #{updateUser,jdbcType=VARCHAR},
</if>
<if test="updateTime != null">
update_time = #{updateTime,jdbcType=TIMESTAMP},
</if>
</set>
where id = #{id,jdbcType=INTEGER}
</update>
</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.reading.dao.impl.ReadingGroupCreateDaoImpl" >
<resultMap id="BaseResultMap" type="com.pcloud.book.reading.entity.ReadingGroupCreate" >
<id column="id" property="id" jdbcType="BIGINT" />
<result column="wx_group_id" property="wxGroupId" jdbcType="VARCHAR" />
<result column="master_id" property="masterId" jdbcType="VARCHAR" />
<result column="use_state" property="useState" jdbcType="INTEGER" />
<result column="create_time" property="createTime" jdbcType="TIMESTAMP" />
<result column="update_time" property="updateTime" jdbcType="TIMESTAMP" />
</resultMap>
<sql id="Base_Column_List" >
id, wx_group_id, master_id, use_state, create_time, update_time
</sql>
<insert id="insert" parameterType="com.pcloud.book.reading.entity.ReadingGroupCreate" useGeneratedKeys="true" keyProperty="id">
insert into reading_group_create (wx_group_id, master_id,
use_state, create_time
)
values (#{wxGroupId,jdbcType=VARCHAR}, #{masterId,jdbcType=VARCHAR},
#{useState}, NOW()
)
</insert>
<update id="updateStateByWxGroupId" parameterType="map">
UPDATE reading_group_create
SET use_state = #{useState},
update_time = NOW()
WHERE wx_group_id = #{wxGroupId}
</update>
</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.reading.dao.impl.ReadingGroupDaoImpl" >
<resultMap id="BaseResultMap" type="com.pcloud.book.reading.entity.ReadingGroup" >
<id column="id" property="id" jdbcType="BIGINT" />
<result column="wx_group_id" property="wxGroupId" jdbcType="VARCHAR" />
<result column="wx_group_name" property="wxGroupName" jdbcType="VARCHAR" />
<result column="activity_id" property="activityId" jdbcType="BIGINT" />
<result column="create_user" property="createUser" jdbcType="BIGINT" />
<result column="create_time" property="createTime" jdbcType="TIMESTAMP" />
<result column="update_time" property="updateTime" jdbcType="TIMESTAMP" />
</resultMap>
<sql id="Base_Column_List" >
id, wx_group_id, wx_group_name, activity_id, create_user, create_time
</sql>
<insert id="insert" parameterType="com.pcloud.book.reading.entity.ReadingGroup" useGeneratedKeys="true" keyProperty="id">
insert into reading_group (wx_group_id, wx_group_name,
activity_id, create_user, create_time
)
values (#{wxGroupId,jdbcType=VARCHAR}, #{wxGroupName,jdbcType=VARCHAR},
#{activityId,jdbcType=BIGINT}, #{createUser,jdbcType=BIGINT}, NOW()
)
</insert>
<select id="getByActivityId" parameterType="long" resultMap="BaseResultMap">
SELECT
<include refid="Base_Column_List"/>
FROM reading_group
WHERE activity_id = #{activityId}
AND wx_group_id IS NOT NULL
</select>
<select id="getByWxGroupId" parameterType="string" resultMap="BaseResultMap">
SELECT <include refid="Base_Column_List"/>
FROM reading_group
WHERE wx_group_id = #{wxGroupId}
</select>
<update id="updateWxGroupIdById" parameterType="map">
UPDATE reading_group
SET wx_group_id = #{wxGroupId},
update_time = NOW()
WHERE id = #{id}
</update>
<select id="getById" parameterType="long" resultMap="BaseResultMap">
SELECT <include refid="Base_Column_List"/>
FROM reading_group
WHERE id = #{id}
</select>
<select id="getLatestNullGroup" resultMap="BaseResultMap" parameterType="string">
SELECT
<include refid="Base_Column_List"/>
FROM
reading_group
WHERE
wx_group_id IS NULL
AND id IN (
SELECT DISTINCT
group_id
FROM
reading_group_robot
WHERE
alt_id = #{altId}
)
ORDER BY
id DESC
LIMIT 1
</select>
<select id="getAllByActivityId" parameterType="long" resultMap="BaseResultMap">
SELECT
<include refid="Base_Column_List"/>
FROM reading_group
WHERE activity_id = #{activityId}
</select>
<update id="updateGroupName" parameterType="map">
UPDATE reading_group
SET wx_group_name = #{wxGroupName}
WHERE
id = #{id}
</update>
</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.reading.dao.impl.ReadingGroupRobotDaoImpl" >
<resultMap id="BaseResultMap" type="com.pcloud.book.reading.entity.ReadingGroupRobot" >
<id column="id" property="id" jdbcType="BIGINT" />
<result column="wx_group_id" property="wxGroupId" jdbcType="VARCHAR" />
<result column="alt_id" property="altId" jdbcType="VARCHAR" />
<result column="group_id" property="groupId" jdbcType="BIGINT" />
<result column="is_master" property="isMaster" jdbcType="BIT" />
<result column="create_time" property="createTime" jdbcType="TIMESTAMP" />
<result column="update_time" property="updateTime" jdbcType="TIMESTAMP" />
</resultMap>
<sql id="Base_Column_List" >
id, wx_group_id, alt_id, group_id, is_master, create_time
</sql>
<insert id="batchInsert" useGeneratedKeys="true" parameterType="java.util.List">
insert into reading_group_robot (wx_group_id, alt_id,
group_id, is_master, create_time
)
values
<foreach collection="list" item="item" index="index" separator="," >
( #{item.wxGroupId,jdbcType=VARCHAR}, #{item.altId,jdbcType=VARCHAR},
#{item.groupId}, #{item.isMaster,jdbcType=BIT}, NOW()
)
</foreach>
</insert>
<update id="updateWxGroupByGroupId" parameterType="map">
UPDATE reading_group_robot
SET wx_group_id = #{wxGroupId},
update_time = NOW()
WHERE group_id = #{groupId}
</update>
<update id="setMaster" parameterType="map">
UPDATE reading_group_robot
SET is_master = 1, update_time = NOW()
WHERE group_id = #{groupId}
AND alt_id = #{altId}
</update>
<select id="getMasterRobotByWxGroupId" parameterType="string" resultType="string">
SELECT
alt_id
FROM
reading_group_robot
WHERE
wx_group_id = #{wxGroupId}
AND is_master = 1
LIMIT 1
</select>
<select id="getGroupIdsByCount" parameterType="integer" resultType="long">
SELECT
group_id
FROM
reading_group_robot
WHERE
wx_group_id IS NULL
GROUP BY
group_id
HAVING
COUNT(1) = #{count}
ORDER BY
create_time DESC
</select>
<select id="groupExist" parameterType="map" resultType="boolean">
SELECT EXISTS(
SELECT
id
FROM
reading_group_robot
WHERE
group_id = #{groupId}
AND wx_group_id IS NULL
AND alt_id IN
<foreach collection="altIds" open="(" close=")" item="item" separator=",">
#{item}
</foreach>
)
</select>
<select id="getByActivityId" parameterType="long" resultMap="BaseResultMap">
SELECT
r.id, r.wx_group_id, r.alt_id, r.group_id, r.is_master, r.create_time
FROM
reading_group_robot r
LEFT JOIN reading_group g ON r.group_id = g.id
WHERE
g.activity_id = #{activityId}
AND r.wx_group_id IS NOT NULL
</select>
<select id="getByGroupId" parameterType="long" resultMap="BaseResultMap">
SELECT
<include refid="Base_Column_List"/>
FROM
reading_group_robot
WHERE
group_id = #{groupId}
</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.reading.dao.impl.ReadingInviteDaoImpl" >
<resultMap id="BaseResultMap" type="com.pcloud.book.reading.entity.ReadingInvite" >
<id column="id" property="id" jdbcType="BIGINT" />
<result column="activity_id" property="activityId" jdbcType="BIGINT" />
<result column="invite_time" property="inviteTime" jdbcType="TIMESTAMP" />
<result column="invite_type" property="inviteType" jdbcType="BIT" />
<result column="invite_content" property="inviteContent" jdbcType="VARCHAR" />
<result column="invite_resource_id" property="inviteResourceId" jdbcType="VARCHAR" />
<result column="create_time" property="createTime" jdbcType="TIMESTAMP" />
<result column="create_user" property="createUser" jdbcType="BIGINT" />
</resultMap>
<sql id="Base_Column_List" >
id, activity_id, invite_time, invite_type, invite_content, invite_resource_id, create_time, create_user
</sql>
<insert id="batchInsert" useGeneratedKeys="true" parameterType="java.util.List">
insert into reading_invite (activity_id, invite_time,
invite_type, invite_content, invite_resource_id, create_time,
create_user)
values
<foreach collection="list" item="item" index="index" separator="," >
(#{item.activityId,jdbcType=BIGINT}, #{item.inviteTime,jdbcType=TIMESTAMP},
#{item.inviteType,jdbcType=BIT}, #{item.inviteContent,jdbcType=VARCHAR}, #{item.inviteResourceId}, NOW(),
#{item.createUser,jdbcType=BIGINT})
</foreach>
</insert>
<select id="getByActivityId" parameterType="long" resultMap="BaseResultMap">
SELECT <include refid="Base_Column_List"/>
FROM reading_invite
WHERE activity_id = #{activityId}
</select>
<delete id="deleteByActivityId" parameterType="long">
DELETE
FROM reading_invite
WHERE activity_id = #{activityId}
</delete>
</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.reading.dao.impl.ReadingUserDaoImpl" >
<resultMap id="BaseResultMap" type="com.pcloud.book.reading.entity.ReadingUser" >
<id column="id" property="id" jdbcType="BIGINT" />
<result column="activity_id" property="activityId" jdbcType="BIGINT" />
<result column="wx_user_id" property="wxUserId" jdbcType="VARCHAR" />
<result column="alt_id" property="altId" jdbcType="VARCHAR" />
<result column="join_state" property="joinState" jdbcType="INTEGER" />
<result column="create_time" property="createTime" jdbcType="TIMESTAMP" />
<result column="create_user" property="createUser" jdbcType="BIGINT" />
</resultMap>
<sql id="Base_Column_List" >
id, activity_id, wx_user_id, alt_id, join_state, create_time, create_user
</sql>
<insert id="batchInsert" useGeneratedKeys="true" parameterType="java.util.List">
insert into reading_user (activity_id, wx_user_id, alt_id, join_state,
create_time, create_user)
values
<foreach collection="list" item="item" index="index" separator="," >
(#{item.activityId,jdbcType=BIGINT}, #{item.wxUserId,jdbcType=VARCHAR}, #{item.altId,jdbcType=VARCHAR},0,
NOW(), #{item.createUser,jdbcType=BIGINT})
</foreach>
</insert>
<select id="getByActivityId" resultMap="BaseResultMap" parameterType="map">
SELECT <include refid="Base_Column_List"/>
FROM reading_user
WHERE activity_id = #{activityId}
<if test="joinState != null">
AND join_state = #{joinState}
</if>
</select>
<update id="updateJoinState" parameterType="map">
UPDATE reading_user
SET join_state = #{joinState}
where wx_user_id = #{wxUserId} and activity_id = #{activityId}
</update>
<!--根据活动id集合获取活动人数-->
<select id="getUserCountsByActivityIds" parameterType="map" resultType="com.pcloud.book.reading.dto.ActivityUserCountDTO">
SELECT
t.activity_id activityId,
COUNT(1) `count`
FROM
reading_user t
where activity_id in
<foreach collection="activityIds" item="item" open="(" separator="," close=")">
${item}
</foreach>
GROUP BY
t.activity_id
</select>
<select id="getWxUserIdByActivityIds" parameterType="map" resultType="string">
SELECT DISTINCT
wx_user_id
FROM
reading_user
WHERE
1=1
<if test="activityIds != null and activityIds.size>0">
AND activity_id IN
<foreach collection="activityIds" item="item" open="(" separator="," close=")">
${item}
</foreach>
</if>
</select>
<!--批量获取活动读者书籍-->
<select id="getBooksByActivityIds" parameterType="map" resultType="com.pcloud.book.reading.dto.ActivityUserBookDTO">
SELECT
t.activity_id activityId,
t3.BOOK_ID bookId,
t3.BOOK_NAME bookName
FROM
reading_user t
INNER JOIN book_group_cipher_user t1 ON t.wx_user_id = t1.wx_user_id
INNER JOIN book_group t2 ON t1.book_group_id = t2.id
AND t2.is_delete = 0
INNER JOIN book t3 ON t2.book_id = t3.BOOK_ID
AND t3.IS_DELETE = 0
WHERE
t.activity_id IN
<foreach collection="activityIds" item="item" open="(" separator="," close=")">
${item}
</foreach>
GROUP BY
t.activity_id,
t3.BOOK_ID
</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