Commit 3c1fe36c by 曾迫

个人号发送小程序基础

parent edc35b01
...@@ -9,7 +9,7 @@ import lombok.Data; ...@@ -9,7 +9,7 @@ import lombok.Data;
@ApiModel("回复统一参数") @ApiModel("回复统一参数")
public class ReplyParamDTO extends BaseDto { public class ReplyParamDTO extends BaseDto {
@ApiModelProperty("类型 1 文字 2 图片 3 链接 4应用 5素材") @ApiModelProperty("类型 1 文字 2 图片 3 链接 4应用 5素材 7小程序")
private Integer replyType; private Integer replyType;
@ApiModelProperty("内容") @ApiModelProperty("内容")
...@@ -30,6 +30,9 @@ public class ReplyParamDTO extends BaseDto { ...@@ -30,6 +30,9 @@ public class ReplyParamDTO extends BaseDto {
@ApiModelProperty("资源id") @ApiModelProperty("资源id")
private Long resourceId; private Long resourceId;
@ApiModelProperty("小程序主键id")
private Long personalAppletsId;
@ApiModelProperty("描述") @ApiModelProperty("描述")
private String description; private String description;
......
...@@ -30,7 +30,12 @@ public enum ReplyTypeEnum { ...@@ -30,7 +30,12 @@ public enum ReplyTypeEnum {
/** /**
* 语音 * 语音
*/ */
AUDIO(6); AUDIO(6),
/**
* 小程序
*/
PERSONALAPPLETS(7);
/** /**
* 值 * 值
*/ */
......
...@@ -42,6 +42,8 @@ import com.pcloud.book.pcloudkeyword.facade.response.PcloudRobotClassifyResponse ...@@ -42,6 +42,8 @@ import com.pcloud.book.pcloudkeyword.facade.response.PcloudRobotClassifyResponse
import com.pcloud.book.pcloudkeyword.facade.response.PcloudRobotResponseVO; import com.pcloud.book.pcloudkeyword.facade.response.PcloudRobotResponseVO;
import com.pcloud.book.pcloudkeyword.set.PcloudRobotSet; import com.pcloud.book.pcloudkeyword.set.PcloudRobotSet;
import com.pcloud.book.push.biz.SelfPushBiz; import com.pcloud.book.push.biz.SelfPushBiz;
import com.pcloud.book.push.dao.PersonalAppletsDao;
import com.pcloud.book.push.entity.PersonalApplets;
import com.pcloud.book.skill.biz.PcloudSkillBiz; import com.pcloud.book.skill.biz.PcloudSkillBiz;
import com.pcloud.book.skill.entity.PcloudSkill; import com.pcloud.book.skill.entity.PcloudSkill;
import com.pcloud.book.util.common.ThreadPoolUtils; import com.pcloud.book.util.common.ThreadPoolUtils;
...@@ -132,6 +134,11 @@ public class PcloudRobotBizImpl implements PcloudRobotBiz { ...@@ -132,6 +134,11 @@ public class PcloudRobotBizImpl implements PcloudRobotBiz {
@Autowired @Autowired
private QrcodeService qrcodeService; private QrcodeService qrcodeService;
@Autowired
private PersonalAppletsDao personalAppletsDao;
@ParamLog(value = "[changeRobotRealStatus]", isAfterReturn = false) @ParamLog(value = "[changeRobotRealStatus]", isAfterReturn = false)
@Override @Override
@Transactional(rollbackFor = {Exception.class}) @Transactional(rollbackFor = {Exception.class})
...@@ -373,6 +380,35 @@ public class PcloudRobotBizImpl implements PcloudRobotBiz { ...@@ -373,6 +380,35 @@ public class PcloudRobotBizImpl implements PcloudRobotBiz {
sendMomentsDTO.setCounts(count); sendMomentsDTO.setCounts(count);
sendMomentsDTO.setIndex(index); sendMomentsDTO.setIndex(index);
sendMomentsDTO.setRobotProcessType(RobotProcessTypeEnum.WELCOME); sendMomentsDTO.setRobotProcessType(RobotProcessTypeEnum.WELCOME);
WxGroupSDK.sendMessageToPhone(sendMomentsDTO);
}else if (WelcomeReplyTypeEnum.APPLETS.value.equals(replyType)){
SendMomentsDTO sendMomentsDTO=new SendMomentsDTO();
List<String> userWxIds=new ArrayList<>();
userWxIds.add(userWxId);
//发送的小程序
PersonalApplets byId = personalAppletsDao.getById(robotWelcome.getPersonalAppletsId());
if(byId==null){
return;
}
GroupRobotDTO info = wechatGroupConsr.getGroupRobotByRobotId(robotWxId);
if (info!=null){
sendMomentsDTO.setIsMasterWx(info.getMasterWx());
sendMomentsDTO.setReceiveAccount(info.getMac());
}
sendMomentsDTO.setMomentType(BusinessConstant.MomentTypeEnum.SEND_WX_MINI);
sendMomentsDTO.setContent(byId.getAppletsId());//小程序id
sendMomentsDTO.setLink(byId.getAppletsUrl());//小程序访问地址
sendMomentsDTO.setImages(userWxIds);//发送人
sendMomentsDTO.setLinkTitle(byId.getSlogan());//小程序宣传语
sendMomentsDTO.setLinkDesc(byId.getSloganImgUrl());//小程序宣传图
sendMomentsDTO.setIp(ip);
sendMomentsDTO.setMessageGroupId(messageGroup);
sendMomentsDTO.setCounts(count);
sendMomentsDTO.setIndex(index);
sendMomentsDTO.setCode(SendMessageTypeEnum.SELF.getCode());
sendMomentsDTO.setRobotProcessType(RobotProcessTypeEnum.WELCOME);
sendMomentsDTO.setAltId(robotWxId);
sendMomentsDTO.setWxId(userWxId);
wechatGroupConsr.sendMessage(JSON.toJSONString(sendMomentsDTO)); wechatGroupConsr.sendMessage(JSON.toJSONString(sendMomentsDTO));
} }
index ++; index ++;
......
...@@ -19,7 +19,7 @@ public class PcloudRobotWelcome extends BaseEntity { ...@@ -19,7 +19,7 @@ public class PcloudRobotWelcome extends BaseEntity {
@ApiModelProperty("全平台分类id") @ApiModelProperty("全平台分类id")
private Long pcloudClassifyId; private Long pcloudClassifyId;
@ApiModelProperty("类型 1 文字 2 图片 3 链接 4应用 5素材") @ApiModelProperty("类型 1 文字 2 图片 3 链接 4应用 5素材 6小程序")
private Integer replyType; private Integer replyType;
@ApiModelProperty("内容") @ApiModelProperty("内容")
...@@ -61,6 +61,16 @@ public class PcloudRobotWelcome extends BaseEntity { ...@@ -61,6 +61,16 @@ public class PcloudRobotWelcome extends BaseEntity {
@ApiModelProperty("文件转码后的单张图片集合") @ApiModelProperty("文件转码后的单张图片集合")
private List<ResourceOfficeItemDTO> resourceOfficeItemDTOs; private List<ResourceOfficeItemDTO> resourceOfficeItemDTOs;
@ApiModelProperty("小程序主键id")
private Integer personalAppletsId;
@ApiModelProperty("小程序宣传语")
private String slogan;
@ApiModelProperty("小程序宣传图片")
private String sloganImgUrl;
} }
...@@ -18,7 +18,11 @@ public enum WelcomeReplyTypeEnum { ...@@ -18,7 +18,11 @@ public enum WelcomeReplyTypeEnum {
/** /**
* 语音 * 语音
*/ */
AUDIO(6); AUDIO(6),
/**
* 值
*/
APPLETS(7);
/** /**
* 值 * 值
*/ */
......
...@@ -12,6 +12,8 @@ import com.pcloud.book.group.tools.SendWeixinRequestTools; ...@@ -12,6 +12,8 @@ import com.pcloud.book.group.tools.SendWeixinRequestTools;
import com.pcloud.book.keywords.enums.ReplyTypeEnum; import com.pcloud.book.keywords.enums.ReplyTypeEnum;
import com.pcloud.book.pcloudkeyword.entity.PcloudRobotWelcome; import com.pcloud.book.pcloudkeyword.entity.PcloudRobotWelcome;
import com.pcloud.book.pcloudkeyword.enums.WelcomeReplyTypeEnum; import com.pcloud.book.pcloudkeyword.enums.WelcomeReplyTypeEnum;
import com.pcloud.book.push.dao.PersonalAppletsDao;
import com.pcloud.book.push.entity.PersonalApplets;
import com.pcloud.book.skill.dto.AppOrProductReplyDTO; import com.pcloud.book.skill.dto.AppOrProductReplyDTO;
import com.pcloud.channelcenter.wechat.dto.AccountSettingDto; import com.pcloud.channelcenter.wechat.dto.AccountSettingDto;
import com.pcloud.common.core.aspect.ParamLog; import com.pcloud.common.core.aspect.ParamLog;
...@@ -44,6 +46,9 @@ public class PcloudRobotSet { ...@@ -44,6 +46,9 @@ public class PcloudRobotSet {
@Autowired @Autowired
private WechatGroupConsr wechatGroupConsr; private WechatGroupConsr wechatGroupConsr;
@Autowired
private PersonalAppletsDao personalAppletsDao;
@ParamLog("填充欢迎语回复") @ParamLog("填充欢迎语回复")
public void fillRobotWelcome(List<PcloudRobotWelcome> robotWelcomeList) { public void fillRobotWelcome(List<PcloudRobotWelcome> robotWelcomeList) {
if(ListUtils.isEmpty(robotWelcomeList)){ if(ListUtils.isEmpty(robotWelcomeList)){
...@@ -75,6 +80,11 @@ public class PcloudRobotSet { ...@@ -75,6 +80,11 @@ public class PcloudRobotSet {
robotWelcome.setResourceOfficeItemDTOs(resourceDTO.getResourceOfficeItemDTOs()); robotWelcome.setResourceOfficeItemDTOs(resourceDTO.getResourceOfficeItemDTOs());
} }
} }
if (WelcomeReplyTypeEnum.APPLETS.value.equals(type)){
PersonalApplets byId = personalAppletsDao.getById(robotWelcome.getPersonalAppletsId());
robotWelcome.setSlogan(byId.getSlogan());
robotWelcome.setSloganImgUrl(byId.getSloganImgUrl());
}
} }
} }
public void sendAppOrProductReply(AppOrProductReplyDTO replyDTO) { public void sendAppOrProductReply(AppOrProductReplyDTO replyDTO) {
......
...@@ -47,6 +47,8 @@ import com.pcloud.book.personalstage.enums.StageReplyRelevEnum; ...@@ -47,6 +47,8 @@ import com.pcloud.book.personalstage.enums.StageReplyRelevEnum;
import com.pcloud.book.personalstage.utils.CacheUtils; import com.pcloud.book.personalstage.utils.CacheUtils;
import com.pcloud.book.personalstage.vo.request.AddScoreRequestVO; import com.pcloud.book.personalstage.vo.request.AddScoreRequestVO;
import com.pcloud.book.personlstage.dto.UserReplaceCodeDTO; import com.pcloud.book.personlstage.dto.UserReplaceCodeDTO;
import com.pcloud.book.push.dao.PersonalAppletsDao;
import com.pcloud.book.push.entity.PersonalApplets;
import com.pcloud.common.core.aspect.ParamLog; import com.pcloud.common.core.aspect.ParamLog;
import com.pcloud.common.core.mq.DelayQueueDTO; import com.pcloud.common.core.mq.DelayQueueDTO;
import com.pcloud.common.exceptions.BizException; import com.pcloud.common.exceptions.BizException;
...@@ -135,6 +137,10 @@ public class PersonalStageBizImpl implements PersonalStageBiz { ...@@ -135,6 +137,10 @@ public class PersonalStageBizImpl implements PersonalStageBiz {
@Autowired @Autowired
private ReplaceCodeDao replaceCodeDao; private ReplaceCodeDao replaceCodeDao;
@Autowired
private PersonalAppletsDao personalAppletsDao;
@Value("${wechat.group.link.prefix}") @Value("${wechat.group.link.prefix}")
private String wechatLinkPrefix; private String wechatLinkPrefix;
...@@ -230,24 +236,31 @@ public class PersonalStageBizImpl implements PersonalStageBiz { ...@@ -230,24 +236,31 @@ public class PersonalStageBizImpl implements PersonalStageBiz {
} }
List<Long> resourceIds=replyItems.stream().filter(s->(ReplyTypeEnum.RESOURCE.value.equals(s.getReplyType()) List<Long> resourceIds=replyItems.stream().filter(s->(ReplyTypeEnum.RESOURCE.value.equals(s.getReplyType())
||ReplyTypeEnum.AUDIO.value.equals(s.getReplyType()))&&s.getResourceId()!=null).map(PersonalStageReplyItem::getResourceId).collect(Collectors.toList()); ||ReplyTypeEnum.AUDIO.value.equals(s.getReplyType()))&&s.getResourceId()!=null).map(PersonalStageReplyItem::getResourceId).collect(Collectors.toList());
if (ListUtils.isEmpty(resourceIds)){ if (!ListUtils.isEmpty(resourceIds)){
return; Map<Long, ResourceDTO> resourceDTOMap = resourceConsr.mapByIds(resourceIds);
for (PersonalStageReplyItem item:replyItems) {
Integer type = item.getReplyType();
if (ReplyTypeEnum.RESOURCE.value.equals(type) || ReplyTypeEnum.AUDIO.value.equals(type)) {
ResourceDTO resourceDTO = resourceDTOMap.get(item.getResourceId());
if (resourceDTO != null) {
item.setResourceName(resourceDTO.getResourceName());
item.setResourceUrl(resourceDTO.getFileUrl());
item.setResourceTypeCode(resourceDTO.getTypeCode());
item.setResourceTypeName(resourceDTO.getTypeName());
item.setFileType(resourceDTO.getFileType());
item.setResourcePdfItems(resourceDTO.getResourcePdfItems());
item.setResourceOfficeItemDTOs(resourceDTO.getResourceOfficeItemDTOs());
item.setFileSize(resourceDTO.getFileSize());
}
}
}
} }
Map<Long, ResourceDTO> resourceDTOMap = resourceConsr.mapByIds(resourceIds);
for (PersonalStageReplyItem item:replyItems){ for (PersonalStageReplyItem item:replyItems){
Integer type=item.getReplyType(); Integer type=item.getReplyType();
if (ReplyTypeEnum.RESOURCE.value.equals(type)||ReplyTypeEnum.AUDIO.value.equals(type)){ if (ReplyTypeEnum.PERSONALAPPLETS.value.equals(type)) {
ResourceDTO resourceDTO = resourceDTOMap.get(item.getResourceId()); PersonalApplets byId = personalAppletsDao.getById(item.getPersonalAppletsId());
if (resourceDTO!=null){ item.setSlogan(byId.getSlogan());
item.setResourceName(resourceDTO.getResourceName()); item.setSloganImgUrl(byId.getSloganImgUrl());
item.setResourceUrl(resourceDTO.getFileUrl());
item.setResourceTypeCode(resourceDTO.getTypeCode());
item.setResourceTypeName(resourceDTO.getTypeName());
item.setFileType(resourceDTO.getFileType());
item.setResourcePdfItems(resourceDTO.getResourcePdfItems());
item.setResourceOfficeItemDTOs(resourceDTO.getResourceOfficeItemDTOs());
item.setFileSize(resourceDTO.getFileSize());
}
} }
} }
} }
...@@ -999,6 +1012,38 @@ public class PersonalStageBizImpl implements PersonalStageBiz { ...@@ -999,6 +1012,38 @@ public class PersonalStageBizImpl implements PersonalStageBiz {
wechatGroupConsr.sendMessage(JSON.toJSONString(sendMomentsDTO)); wechatGroupConsr.sendMessage(JSON.toJSONString(sendMomentsDTO));
} }
} }
if (ReplyTypeEnum.PERSONALAPPLETS.value.equals(type)) {
SendMomentsDTO sendMomentsDTO=new SendMomentsDTO();
List<String> userWxIds=new ArrayList<>();
userWxIds.add(userWxId);
//发送的小程序
PersonalApplets byId = personalAppletsDao.getById(item.getPersonalAppletsId());
if(byId==null){
return;
}
GroupRobotDTO info = wechatGroupConsr.getGroupRobotByRobotId(robotId);
if (info != null) {
sendMomentsDTO.setIsMasterWx(info.getMasterWx());
sendMomentsDTO.setReceiveAccount(info.getMac());
}
sendMomentsDTO.setMomentType(BusinessConstant.MomentTypeEnum.SEND_WX_MINI);
sendMomentsDTO.setContent(byId.getAppletsId());//小程序id
sendMomentsDTO.setLink(byId.getAppletsUrl());//小程序访问地址
sendMomentsDTO.setImages(userWxIds);//发送人
sendMomentsDTO.setLinkTitle(byId.getSlogan());//小程序宣传语
sendMomentsDTO.setLinkDesc(byId.getSloganImgUrl());//小程序宣传图
sendMomentsDTO.setIp(ip);
sendMomentsDTO.setMessageGroupId(uuid);
sendMomentsDTO.setCounts(replyItems.size());
sendMomentsDTO.setIndex(replyItems.indexOf(item));
sendMomentsDTO.setCode(SendMessageTypeEnum.SELF.getCode());
sendMomentsDTO.setRobotProcessType(robotProcessType);
sendMomentsDTO.setAltId(robotId);
sendMomentsDTO.setWxId(userWxId);
wechatGroupConsr.sendMessage(JSON.toJSONString(sendMomentsDTO));
}
} }
} }
......
...@@ -28,6 +28,8 @@ import com.pcloud.book.personalstage.enums.PersonalStageUserStateEnum; ...@@ -28,6 +28,8 @@ import com.pcloud.book.personalstage.enums.PersonalStageUserStateEnum;
import com.pcloud.book.personalstage.vo.request.BaseStageJumpRequestVO; import com.pcloud.book.personalstage.vo.request.BaseStageJumpRequestVO;
import com.pcloud.book.personalstage.vo.request.CreateStageJumpRequestVO; import com.pcloud.book.personalstage.vo.request.CreateStageJumpRequestVO;
import com.pcloud.book.personalstage.vo.request.UpdateStageJumpRequestVO; import com.pcloud.book.personalstage.vo.request.UpdateStageJumpRequestVO;
import com.pcloud.book.push.dao.PersonalAppletsDao;
import com.pcloud.book.push.entity.PersonalApplets;
import com.pcloud.book.util.common.YesOrNoEnums; import com.pcloud.book.util.common.YesOrNoEnums;
import com.pcloud.common.core.aspect.ParamLog; import com.pcloud.common.core.aspect.ParamLog;
import com.pcloud.common.core.biz.MessageBiz; import com.pcloud.common.core.biz.MessageBiz;
...@@ -46,11 +48,7 @@ import com.pcloud.contentcenter.resource.dto.ResourceDTO; ...@@ -46,11 +48,7 @@ import com.pcloud.contentcenter.resource.dto.ResourceDTO;
import com.pcloud.feedback.paper.dto.PaperAndQuestionDto; import com.pcloud.feedback.paper.dto.PaperAndQuestionDto;
import com.pcloud.wechatgroup.group.dto.GroupRobotDTO; import com.pcloud.wechatgroup.group.dto.GroupRobotDTO;
import com.pcloud.wechatgroup.group.dto.GroupUserDTO; import com.pcloud.wechatgroup.group.dto.GroupUserDTO;
import com.sdk.wxgroup.BaseVO; import com.sdk.wxgroup.*;
import com.sdk.wxgroup.RobotProcessTypeEnum;
import com.sdk.wxgroup.SendMessageTypeEnum;
import com.sdk.wxgroup.SendPicMessageVO;
import com.sdk.wxgroup.SendTextMessageVO;
import com.sdk.wxgroup.im.mimc.BusinessConstant; import com.sdk.wxgroup.im.mimc.BusinessConstant;
import com.sdk.wxgroup.im.mimc.dto.SendMomentsDTO; import com.sdk.wxgroup.im.mimc.dto.SendMomentsDTO;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
...@@ -114,6 +112,11 @@ public class PersonalStageJumpBizImpl implements PersonalStageJumpBiz { ...@@ -114,6 +112,11 @@ public class PersonalStageJumpBizImpl implements PersonalStageJumpBiz {
@Autowired @Autowired
private CustomPlanBiz customPlanBiz; private CustomPlanBiz customPlanBiz;
@Autowired
private PersonalAppletsDao personalAppletsDao;
@Value("${wechat.group.link.prefix}") @Value("${wechat.group.link.prefix}")
private String wechatLinkPrefix; private String wechatLinkPrefix;
//需求单链接替换符 //需求单链接替换符
...@@ -260,23 +263,32 @@ public class PersonalStageJumpBizImpl implements PersonalStageJumpBiz { ...@@ -260,23 +263,32 @@ public class PersonalStageJumpBizImpl implements PersonalStageJumpBiz {
} }
List<Long> resourceIds=linkups.stream().filter(s->(ReplyTypeEnum.RESOURCE.value.equals(s.getReplyType()) List<Long> resourceIds=linkups.stream().filter(s->(ReplyTypeEnum.RESOURCE.value.equals(s.getReplyType())
||ReplyTypeEnum.AUDIO.value.equals(s.getReplyType()))&&s.getResourceId()!=null).map(PersonalStageJumpLinkup::getResourceId).collect(Collectors.toList()); ||ReplyTypeEnum.AUDIO.value.equals(s.getReplyType()))&&s.getResourceId()!=null).map(PersonalStageJumpLinkup::getResourceId).collect(Collectors.toList());
if (ListUtils.isEmpty(resourceIds)){ if (!ListUtils.isEmpty(resourceIds)){
return; Map<Long, ResourceDTO> resourceDTOMap = resourceConsr.mapByIds(resourceIds);
for (PersonalStageJumpLinkup item:linkups) {
Integer type = item.getReplyType();
if (ReplyTypeEnum.RESOURCE.value.equals(type) || ReplyTypeEnum.AUDIO.value.equals(type)) {
ResourceDTO resourceDTO = resourceDTOMap.get(item.getResourceId());
if (resourceDTO != null) {
item.setResourceName(resourceDTO.getResourceName());
item.setResourceUrl(resourceDTO.getFileUrl());
item.setResourceTypeCode(resourceDTO.getTypeCode());
item.setResourceTypeName(resourceDTO.getTypeName());
item.setFileType(resourceDTO.getFileType());
item.setResourcePdfItems(resourceDTO.getResourcePdfItems());
item.setResourceOfficeItemDTOs(resourceDTO.getResourceOfficeItemDTOs());
item.setFileSize(resourceDTO.getFileSize());
}
}
}
} }
Map<Long, ResourceDTO> resourceDTOMap = resourceConsr.mapByIds(resourceIds);
for (PersonalStageJumpLinkup item:linkups){ for (PersonalStageJumpLinkup item:linkups){
Integer type=item.getReplyType(); Integer type = item.getReplyType();
if (ReplyTypeEnum.RESOURCE.value.equals(type)||ReplyTypeEnum.AUDIO.value.equals(type)){ if (ReplyTypeEnum.PERSONALAPPLETS.value.equals(type)){
ResourceDTO resourceDTO = resourceDTOMap.get(item.getResourceId()); if(item.getPersonalAppletsId()!=null) {
if (resourceDTO!=null){ PersonalApplets byId = personalAppletsDao.getById(item.getPersonalAppletsId());
item.setResourceName(resourceDTO.getResourceName()); item.setSlogan(byId.getSlogan());
item.setResourceUrl(resourceDTO.getFileUrl()); item.setSloganImgUrl(byId.getSloganImgUrl());
item.setResourceTypeCode(resourceDTO.getTypeCode());
item.setResourceTypeName(resourceDTO.getTypeName());
item.setFileType(resourceDTO.getFileType());
item.setResourcePdfItems(resourceDTO.getResourcePdfItems());
item.setResourceOfficeItemDTOs(resourceDTO.getResourceOfficeItemDTOs());
item.setFileSize(resourceDTO.getFileSize());
} }
} }
} }
...@@ -558,6 +570,33 @@ public class PersonalStageJumpBizImpl implements PersonalStageJumpBiz { ...@@ -558,6 +570,33 @@ public class PersonalStageJumpBizImpl implements PersonalStageJumpBiz {
fillMessageBaseInfo(sendMomentsDTO, linkupDelayDTO); fillMessageBaseInfo(sendMomentsDTO, linkupDelayDTO);
wechatGroupConsr.sendMessage(JSON.toJSONString(sendMomentsDTO)); wechatGroupConsr.sendMessage(JSON.toJSONString(sendMomentsDTO));
} }
} else if (ReplyTypeEnum.PERSONALAPPLETS.value.equals( jumpLinkup.getReplyType())){
SendMomentsDTO sendMomentsDTO=new SendMomentsDTO();
List<String> userWxIds=new ArrayList<>();
userWxIds.add(dto.getKey());
//发送的小程序
PersonalApplets byId = personalAppletsDao.getById(jumpLinkup.getPersonalAppletsId());
if(byId==null){
return;
}
GroupRobotDTO info = wechatGroupConsr.getGroupRobotByRobotId(linkupDelayDTO.getRobotId());
if (info != null) {
sendMomentsDTO.setIsMasterWx(info.getMasterWx());
sendMomentsDTO.setReceiveAccount(info.getMac());
}
sendMomentsDTO.setMomentType(BusinessConstant.MomentTypeEnum.SEND_WX_MINI);
sendMomentsDTO.setContent(byId.getAppletsId());//小程序id
sendMomentsDTO.setLink(byId.getAppletsUrl());//小程序访问地址
sendMomentsDTO.setImages(userWxIds);//发送人
sendMomentsDTO.setLinkTitle(byId.getSlogan());//小程序宣传语
sendMomentsDTO.setLinkDesc(byId.getSloganImgUrl());//小程序宣传图
sendMomentsDTO.setIp(linkupDelayDTO.getIp());
sendMomentsDTO.setCode(SendMessageTypeEnum.SELF.getCode());
fillMessageBaseInfo(sendMomentsDTO, linkupDelayDTO);
sendMomentsDTO.setAltId(linkupDelayDTO.getRobotId());
sendMomentsDTO.setWxId(dto.getKey());
wechatGroupConsr.sendMessage(JSON.toJSONString(sendMomentsDTO));
} }
} }
......
...@@ -22,7 +22,7 @@ public class PersonalStageJumpLinkup extends BaseEntity { ...@@ -22,7 +22,7 @@ public class PersonalStageJumpLinkup extends BaseEntity {
@ApiModelProperty("距离阶段开始时间") @ApiModelProperty("距离阶段开始时间")
private Integer toStageStartTime; private Integer toStageStartTime;
@ApiModelProperty("类型:1:文字;2:图片;6语音") @ApiModelProperty("类型:1:文字;2:图片;6语音 7小程序")
private Integer replyType; private Integer replyType;
@ApiModelProperty("图片链接") @ApiModelProperty("图片链接")
...@@ -55,4 +55,14 @@ public class PersonalStageJumpLinkup extends BaseEntity { ...@@ -55,4 +55,14 @@ public class PersonalStageJumpLinkup extends BaseEntity {
@ApiModelProperty("文件大小") @ApiModelProperty("文件大小")
private Long fileSize; private Long fileSize;
@ApiModelProperty("小程序主键id")
private Long personalAppletsId;
@ApiModelProperty("小程序宣传语")
private String slogan;
@ApiModelProperty("小程序宣传图")
private String sloganImgUrl;
} }
\ No newline at end of file
...@@ -16,7 +16,7 @@ public class PersonalStageReplyItem extends BaseEntity { ...@@ -16,7 +16,7 @@ public class PersonalStageReplyItem extends BaseEntity {
@ApiModelProperty("定制化阶段回复id") @ApiModelProperty("定制化阶段回复id")
private Long personalStageReplyId; private Long personalStageReplyId;
@ApiModelProperty("回复类型 1 文字 2 图片 3 链接 4应用 5素材 6语音") @ApiModelProperty("回复类型 1 文字 2 图片 3 链接 4应用 5素材 6语音 7小程序")
private Integer replyType; private Integer replyType;
@ApiModelProperty("内容") @ApiModelProperty("内容")
...@@ -52,4 +52,13 @@ public class PersonalStageReplyItem extends BaseEntity { ...@@ -52,4 +52,13 @@ public class PersonalStageReplyItem extends BaseEntity {
@ApiModelProperty("文件大小") @ApiModelProperty("文件大小")
private Long fileSize; private Long fileSize;
@ApiModelProperty("小程序主键id")
private Long personalAppletsId;
@ApiModelProperty("小程序宣传语")
private String slogan;
@ApiModelProperty("小程序宣传图片")
private String sloganImgUrl;
} }
\ No newline at end of file
...@@ -85,6 +85,7 @@ public abstract class BaseStageJumpRequestVO extends BaseRequestVO { ...@@ -85,6 +85,7 @@ public abstract class BaseStageJumpRequestVO extends BaseRequestVO {
jumpLinkup.setReplyType((null == linkup.getReplyType() || linkup.getReplyType() == 0 ? 1 : linkup.getReplyType())); jumpLinkup.setReplyType((null == linkup.getReplyType() || linkup.getReplyType() == 0 ? 1 : linkup.getReplyType()));
jumpLinkup.setPicUrl(linkup.getPicUrl()); jumpLinkup.setPicUrl(linkup.getPicUrl());
jumpLinkup.setResourceId(linkup.getResourceId()); jumpLinkup.setResourceId(linkup.getResourceId());
jumpLinkup.setPersonalAppletsId(linkup.getPersonalAppletsId());
jumpLinkups.add(jumpLinkup); jumpLinkups.add(jumpLinkup);
} }
return jumpLinkups; return jumpLinkups;
......
package com.pcloud.book.push.biz; package com.pcloud.book.push.biz;
import com.pcloud.book.group.vo.UserBookInfoVO; import com.pcloud.book.group.vo.UserBookInfoVO;
import com.pcloud.book.push.dto.PersonalAppletsRecordDTO;
import com.pcloud.book.push.dto.SelfPushAddParamDTO; import com.pcloud.book.push.dto.SelfPushAddParamDTO;
import com.pcloud.book.push.dto.SelfPushRecordDTO; import com.pcloud.book.push.dto.SelfPushRecordDTO;
import com.pcloud.book.push.entity.PersonalApplets;
import com.pcloud.book.push.entity.SelfPush; import com.pcloud.book.push.entity.SelfPush;
import com.pcloud.common.page.PageBeanNew; import com.pcloud.common.page.PageBeanNew;
import java.util.List;
/** /**
* @描述:个人号群发 * @描述:个人号群发
* @作者:zhuyajie * @作者:zhuyajie
...@@ -62,4 +66,16 @@ public interface SelfPushBiz { ...@@ -62,4 +66,16 @@ public interface SelfPushBiz {
void updateSelfPush(Long partyId, SelfPushAddParamDTO addParamDTO); void updateSelfPush(Long partyId, SelfPushAddParamDTO addParamDTO);
SelfPush getSelfPush(Long pushId); SelfPush getSelfPush(Long pushId);
void createPersonalApplets(PersonalApplets applets);
void deleteAppletsById(Long id);
void updatePersonalApplets(PersonalApplets applets);
PageBeanNew<PersonalApplets> getAllApplets(String appletsId,Integer currentPage,Integer numPerPage);
PageBeanNew<PersonalAppletsRecordDTO> getSendAppletsRecords(Integer currentPage, Integer numPerPage, String startTime, String endTime, Integer status, Long partyId);
PersonalApplets getAppletsById(Long id);
} }
package com.pcloud.book.push.dao;
import com.pcloud.book.push.entity.PersonalApplets;
import com.pcloud.book.push.entity.SelfPush;
import com.pcloud.common.core.dao.BaseDao;
import java.util.List;
/**
* @描述:小程序
* @作者:zengpo
* @创建时间:18:57 2020/03/16
* @版本:1.0
*/
public interface PersonalAppletsDao extends BaseDao<PersonalApplets>{
List<PersonalApplets> getAllApplets(String appletsId);
}
package com.pcloud.book.push.dao.impl;
import com.pcloud.book.push.dao.PersonalAppletsDao;
import com.pcloud.book.push.dao.SelfPushDao;
import com.pcloud.book.push.entity.PersonalApplets;
import com.pcloud.book.push.entity.SelfPush;
import com.pcloud.common.core.dao.BaseDaoImpl;
import org.springframework.stereotype.Component;
import java.lang.reflect.MalformedParameterizedTypeException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @描述:个人号群发
* @作者:zhuyajie
* @创建时间:18:57 2019/11/26
* @版本:1.0
*/
@Component("personalAppletsDao")
public class PersonalAppletsDaoImpl extends BaseDaoImpl<PersonalApplets> implements PersonalAppletsDao {
@Override
public List<PersonalApplets> getAllApplets(String appletsId) {
Map<String,Object> map=new HashMap<>();
map.put("appletsId",appletsId);
return getSessionTemplate().selectList(getStatement("getAllApplets"),map);
}
}
package com.pcloud.book.push.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.pcloud.book.push.entity.SelfPushItem;
import com.pcloud.common.dto.BaseDto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
import java.util.List;
/**
* @描述:个人号群发记录
* @作者:zhuyajie
* @创建时间:16:50 2019/11/27
* @版本:1.0
*/
@Data
public class PersonalAppletsRecordDTO extends BaseDto{
@ApiModelProperty("群发小号id")
private String altId;
@ApiModelProperty("小号名称")
private String robotName;
@ApiModelProperty("推送id")
private Long pushId;
@ApiModelProperty("推送项id")
private Long pushItemId;
@ApiModelProperty("推送内容项类型:1文本,2链接,3应用,4图片")
private Integer itemType;
@ApiModelProperty("发送状态(0发送中1发送成功2发送失败)")
private Integer pushStatus;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@ApiModelProperty("创建时间")
private Date createTime;
@ApiModelProperty("发送好友数量")
private Integer userCount;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@ApiModelProperty("发送时间")
private Date sendTime;
@ApiModelProperty("创建人")
private Long createUser;
@ApiModelProperty("创建人账号")
private String userName;
@ApiModelProperty("计划发送时间")
private String pushSendTime;
@ApiModelProperty("周几")
private String weekDays;
@ApiModelProperty("时间推送类型")
private Integer pushType;
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@ApiModelProperty("开始时间")
private Date startTime;
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@ApiModelProperty("结束时间")
private Date endTime;
@ApiModelProperty("发送时间拼接")
private String realSendTime;
@ApiModelProperty("分类名称")
private String classifyName;
@ApiModelProperty("小号分类id")
private Integer classifyId;
@ApiModelProperty("小号编号")
private String uniqueNumber;
@ApiModelProperty("小程序主键id")
private Long personalAppletsId;
@ApiModelProperty("小程序id")
private String appletsId;
@ApiModelProperty("小程序访问地址")
private String appletsUrl;
@ApiModelProperty("小程序宣传语")
private String slogan;
@ApiModelProperty("小程序宣图片")
private String sloganImgUrl;
}
package com.pcloud.book.push.entity;
import com.pcloud.common.entity.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @Description
* @Author zengpo
* @Date 2020/03/16 16:46
**/
@ApiModel("消息推送项模型")
@Data
public class PersonalApplets extends BaseEntity {
@ApiModelProperty("小程序id")
private String appletsId;
@ApiModelProperty("小程序宣传语")
private String slogan;
@ApiModelProperty("小程序宣传图片")
private String sloganImgUrl;
@ApiModelProperty("小程序访问地址")
private String appletsUrl;
}
...@@ -19,10 +19,10 @@ public class SelfPushItem extends BaseEntity{ ...@@ -19,10 +19,10 @@ public class SelfPushItem extends BaseEntity{
@ApiModelProperty("推送id") @ApiModelProperty("推送id")
private Long pushId; private Long pushId;
@ApiModelProperty("推送内容项类型:1文本,2链接,3应用,4图片5素材") @ApiModelProperty("推送内容项类型:1文本,2链接,3应用,4图片5素材,6小程序")
private Integer itemType; private Integer itemType;
@ApiModelProperty("类型 1 文字 2 图片 3 链接 4应用 5素材") @ApiModelProperty("类型 1 文字 2 图片 3 链接 4应用 5素材 6小程序")
private Integer replyType; private Integer replyType;
@ApiModelProperty("文本内容") @ApiModelProperty("文本内容")
...@@ -79,6 +79,10 @@ public class SelfPushItem extends BaseEntity{ ...@@ -79,6 +79,10 @@ public class SelfPushItem extends BaseEntity{
@ApiModelProperty("资源id") @ApiModelProperty("资源id")
private Long resourceId; private Long resourceId;
@ApiModelProperty("小程序主键id")
private Long personalAppletsId;
@ApiModelProperty("资源链接") @ApiModelProperty("资源链接")
private String resourceUrl; private String resourceUrl;
......
...@@ -26,7 +26,12 @@ public enum ItemTypeEnum { ...@@ -26,7 +26,12 @@ public enum ItemTypeEnum {
/** /**
* 资源 * 资源
*/ */
RESOURCE(5); RESOURCE(5),
/**
* 小程序
*/
PERSANALAPPLETS(7);
public final Integer value; public final Integer value;
......
...@@ -4,8 +4,10 @@ import com.pcloud.book.base.exception.BookBizException; ...@@ -4,8 +4,10 @@ import com.pcloud.book.base.exception.BookBizException;
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.check.PushCheck; import com.pcloud.book.push.check.PushCheck;
import com.pcloud.book.push.dto.PersonalAppletsRecordDTO;
import com.pcloud.book.push.dto.SelfPushAddParamDTO; import com.pcloud.book.push.dto.SelfPushAddParamDTO;
import com.pcloud.book.push.dto.SelfPushRecordDTO; import com.pcloud.book.push.dto.SelfPushRecordDTO;
import com.pcloud.book.push.entity.PersonalApplets;
import com.pcloud.common.core.constant.SystemCode; import com.pcloud.common.core.constant.SystemCode;
import com.pcloud.common.dto.ResponseDto; import com.pcloud.common.dto.ResponseDto;
import com.pcloud.common.page.PageBeanNew; import com.pcloud.common.page.PageBeanNew;
...@@ -132,4 +134,87 @@ public class SelfPushFacade { ...@@ -132,4 +134,87 @@ public class SelfPushFacade {
SessionUtil.getInfoToken4Redis(token); SessionUtil.getInfoToken4Redis(token);
return new ResponseDto<>(selfPushBiz.getSelfPush(pushId)); return new ResponseDto<>(selfPushBiz.getSelfPush(pushId));
} }
@ApiOperation("创建小程序")
@PostMapping("createPersonalApplets")
public ResponseDto<?> createPersonalApplets(@RequestHeader("token") String token,@RequestBody @ApiParam PersonalApplets applets) throws PermissionException {
SessionUtil.getInfoToken4Redis(token);
if (applets!=null&&applets.getAppletsId()==null) {
throw new BookBizException(BookBizException.PARAM_IS_NULL, "缺失小程序id");
}
selfPushBiz.createPersonalApplets(applets);
return new ResponseDto<>();
}
@ApiOperation("删除小程序")
@GetMapping("deleteAppletsById")
public ResponseDto<?> deleteAppletsById(@RequestHeader("token") String token,@RequestParam("id") Long id) throws PermissionException {
SessionUtil.getInfoToken4Redis(token);
selfPushBiz.deleteAppletsById(id);
return new ResponseDto<>();
}
@ApiOperation("更新小程序")
@PostMapping("updatePersonalApplets")
public ResponseDto<?> updatePersonalApplets(@RequestHeader("token") String token,@RequestBody @ApiParam PersonalApplets applets) throws PermissionException {
SessionUtil.getInfoToken4Redis(token);
if (applets!=null&&applets.getId()==null) {
throw new BookBizException(BookBizException.PARAM_IS_NULL, "缺失小程序主键id");
}
selfPushBiz.updatePersonalApplets(applets);
return new ResponseDto<>();
}
@ApiOperation("查询所有小程序")
@GetMapping("getAllApplets")
public ResponseDto<?> getAllApplets(@RequestHeader("token") String token,
@RequestParam(value = "appletsId",required = false) @ApiParam("小程序id") String appletsId,
@RequestParam("currentPage") @ApiParam("当前页") Integer currentPage,
@RequestParam("numPerPage") @ApiParam("每页数量") Integer numPerPage) throws PermissionException {
SessionUtil.getInfoToken4Redis(token);
if (null == currentPage || null == numPerPage) {
throw new BookBizException(BookBizException.PARAM_IS_NULL, "缺少分页参数");
}
PageBeanNew<PersonalApplets> pageBeanNew=selfPushBiz.getAllApplets(appletsId,currentPage,numPerPage);
return new ResponseDto<>(pageBeanNew);
}
@ApiOperation("根据小程序主键id获取小程序信息")
@GetMapping("getAppletsById")
public ResponseDto<?> getAppletsById(@RequestHeader("token") String token,
@RequestParam(value = "id",required = true) @ApiParam("小程序主键id") Long id
) throws PermissionException {
SessionUtil.getInfoToken4Redis(token);
PersonalApplets personalApplets=selfPushBiz.getAppletsById(id);
return new ResponseDto<>(personalApplets);
}
@ApiOperation("查询小程序发送记录")
@GetMapping("getSendAppletsRecords")
public ResponseDto<PageBeanNew<PersonalAppletsRecordDTO>> getSendAppletsRecords(
@RequestHeader("token") String token,
@RequestParam("currentPage") @ApiParam("当前页") Integer currentPage,
@RequestParam("numPerPage") @ApiParam("每页数量") Integer numPerPage,
@RequestParam(value = "startTime", required = false) @ApiParam("开始时间") String startTime,
@RequestParam(value = "endTime", required = false) @ApiParam("结束时间") String endTime,
@RequestParam(value = "status", required = false) @ApiParam("发送状态(1发送中2发送成功3发送失败)") Integer status) throws PermissionException {
Map<String, Object> map = SessionUtil.getToken4Redis(token);
if (null == currentPage || null == numPerPage) {
throw new BookBizException(BookBizException.PARAM_IS_NULL, "缺少分页参数");
}
Long partyId = (Long) map.get(SessionUtil.PARTY_ID);
if (partyId == 0){
String isSystem = (String) map.get(SessionUtil.IS_SYSTEM);
if ("0".equals(isSystem)) {
partyId = (Long) map.get(SessionUtil.MEMBER_ID);
}
}
PageBeanNew<PersonalAppletsRecordDTO> pageBeanNew = selfPushBiz.getSendAppletsRecords(currentPage, numPerPage, startTime, endTime, status,partyId);
return new ResponseDto<>(pageBeanNew);
}
} }
...@@ -14,11 +14,12 @@ ...@@ -14,11 +14,12 @@
<result column="file_size" property="fileSize" jdbcType="BIGINT"/> <result column="file_size" property="fileSize" jdbcType="BIGINT"/>
<result column="resource_id" property="resourceId" jdbcType="INTEGER"/> <result column="resource_id" property="resourceId" jdbcType="INTEGER"/>
<result column="create_time" property="createTime" jdbcType="TIMESTAMP"/> <result column="create_time" property="createTime" jdbcType="TIMESTAMP"/>
<result column="personal_applets_id" property="personalAppletsId" jdbcType="BIGINT"/>
</resultMap> </resultMap>
<sql id="Base_Column_List" > <sql id="Base_Column_List" >
id, pcloud_robot_id, pcloud_classify_id, reply_type, content, pic_url, file_name, file_type, file_url, id, pcloud_robot_id, pcloud_classify_id, reply_type, content, pic_url, file_name, file_type, file_url,
file_size, resource_id, create_time file_size, resource_id, create_time,personal_applets_id
</sql> </sql>
<!--批量插入--> <!--批量插入-->
...@@ -34,7 +35,8 @@ ...@@ -34,7 +35,8 @@
file_url, file_url,
file_size, file_size,
resource_id, resource_id,
create_time create_time,
personal_applets_id
) values ) values
<foreach collection="list" item="item" index="index" separator=","> <foreach collection="list" item="item" index="index" separator=",">
( (
...@@ -48,7 +50,8 @@ ...@@ -48,7 +50,8 @@
#{item.fileUrl,jdbcType=VARCHAR}, #{item.fileUrl,jdbcType=VARCHAR},
#{item.fileSize,jdbcType=BIGINT}, #{item.fileSize,jdbcType=BIGINT},
#{item.resourceId,jdbcType=BIGINT}, #{item.resourceId,jdbcType=BIGINT},
NOW() NOW(),
#{item.personalAppletsId,jdbcType=BIGINT}
) )
</foreach> </foreach>
</insert> </insert>
......
...@@ -10,10 +10,11 @@ ...@@ -10,10 +10,11 @@
<result property="replyType" column="reply_type" jdbcType="INTEGER"/> <result property="replyType" column="reply_type" jdbcType="INTEGER"/>
<result property="picUrl" column="pic_url" jdbcType="VARCHAR"/> <result property="picUrl" column="pic_url" jdbcType="VARCHAR"/>
<result property="resourceId" column="resource_id" jdbcType="BIGINT"/> <result property="resourceId" column="resource_id" jdbcType="BIGINT"/>
<result column="personal_applets_id" property="personalAppletsId" jdbcType="BIGINT"/>
</resultMap> </resultMap>
<sql id="Base_Column_List"> <sql id="Base_Column_List">
id, personal_stage_jump_id, linkup_content, to_stage_start_time, reply_type, pic_url, resource_id id, personal_stage_jump_id, linkup_content, to_stage_start_time, reply_type, pic_url, resource_id,personal_applets_id
</sql> </sql>
<select id="getById" resultMap="BaseResultMap" parameterType="java.lang.Long"> <select id="getById" resultMap="BaseResultMap" parameterType="java.lang.Long">
...@@ -58,7 +59,8 @@ ...@@ -58,7 +59,8 @@
to_stage_start_time, to_stage_start_time,
reply_type, reply_type,
pic_url, pic_url,
resource_id resource_id,
personal_applets_id
</trim> </trim>
<trim prefix="values (" suffix=")" suffixOverrides=","> <trim prefix="values (" suffix=")" suffixOverrides=",">
#{personalStageJumpId,jdbcType=BIGINT}, #{personalStageJumpId,jdbcType=BIGINT},
...@@ -66,7 +68,8 @@ ...@@ -66,7 +68,8 @@
#{toStageStartTime,jdbcType=INTEGER}, #{toStageStartTime,jdbcType=INTEGER},
#{replyType,jdbcType=INTEGER}, #{replyType,jdbcType=INTEGER},
#{picUrl,jdbcType=VARCHAR}, #{picUrl,jdbcType=VARCHAR},
#{resourceId,jdbcType=BIGINT} #{resourceId,jdbcType=BIGINT},
#{personalAppletsId,jdbcType=BIGINT}
</trim> </trim>
</insert> </insert>
...@@ -78,7 +81,8 @@ ...@@ -78,7 +81,8 @@
to_stage_start_time, to_stage_start_time,
reply_type, reply_type,
pic_url, pic_url,
resource_id resource_id,
personal_applets_id
</trim> </trim>
values values
<foreach collection="list" item="item" separator=","> <foreach collection="list" item="item" separator=",">
...@@ -88,7 +92,8 @@ ...@@ -88,7 +92,8 @@
#{item.toStageStartTime,jdbcType=INTEGER}, #{item.toStageStartTime,jdbcType=INTEGER},
#{item.replyType,jdbcType=INTEGER}, #{item.replyType,jdbcType=INTEGER},
#{item.picUrl,jdbcType=VARCHAR}, #{item.picUrl,jdbcType=VARCHAR},
#{item.resourceId,jdbcType=BIGINT} #{item.resourceId,jdbcType=BIGINT},
#{item.personalAppletsId,jdbcType=BIGINT}
</trim> </trim>
</foreach> </foreach>
</insert> </insert>
......
...@@ -10,10 +10,11 @@ ...@@ -10,10 +10,11 @@
<result property="picUrl" column="pic_url" jdbcType="VARCHAR"/> <result property="picUrl" column="pic_url" jdbcType="VARCHAR"/>
<result property="resourceId" column="resource_id" jdbcType="BIGINT"/> <result property="resourceId" column="resource_id" jdbcType="BIGINT"/>
<result property="createTime" column="create_time" jdbcType="TIMESTAMP"/> <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
<result column="personal_applets_id" property="personalAppletsId" jdbcType="BIGINT"/>
</resultMap> </resultMap>
<sql id="Base_Column_List"> <sql id="Base_Column_List">
id, personal_stage_reply_id, reply_type, content, pic_url, resource_id, create_time id, personal_stage_reply_id, reply_type, content, pic_url, resource_id, create_time,personal_applets_id
</sql> </sql>
<select id="getById" resultMap="BaseResultMap" parameterType="java.lang.Long"> <select id="getById" resultMap="BaseResultMap" parameterType="java.lang.Long">
...@@ -36,7 +37,8 @@ ...@@ -36,7 +37,8 @@
content, content,
pic_url, pic_url,
resource_id, resource_id,
create_time create_time,
personal_applets_id
</trim> </trim>
<trim prefix="values (" suffix=")" suffixOverrides=","> <trim prefix="values (" suffix=")" suffixOverrides=",">
#{personalStageReplyId,jdbcType=BIGINT}, #{personalStageReplyId,jdbcType=BIGINT},
...@@ -44,7 +46,8 @@ ...@@ -44,7 +46,8 @@
#{content,jdbcType=VARCHAR}, #{content,jdbcType=VARCHAR},
#{picUrl,jdbcType=VARCHAR}, #{picUrl,jdbcType=VARCHAR},
#{resourceId,jdbcType=BIGINT}, #{resourceId,jdbcType=BIGINT},
NOW() NOW(),
#{personalAppletsId,jdbcType=BIGINT}
</trim> </trim>
</insert> </insert>
...@@ -55,7 +58,8 @@ ...@@ -55,7 +58,8 @@
content, content,
pic_url, pic_url,
resource_id, resource_id,
create_time create_time,
personal_applets_id
) values ) values
<foreach collection="list" item="item" index="index" separator=","> <foreach collection="list" item="item" index="index" separator=",">
( (
...@@ -64,7 +68,8 @@ ...@@ -64,7 +68,8 @@
#{item.content,jdbcType=VARCHAR}, #{item.content,jdbcType=VARCHAR},
#{item.picUrl,jdbcType=VARCHAR}, #{item.picUrl,jdbcType=VARCHAR},
#{item.resourceId,jdbcType=BIGINT}, #{item.resourceId,jdbcType=BIGINT},
NOW() NOW(),
#{item.personalAppletsId,jdbcType=BIGINT}
) )
</foreach> </foreach>
</insert> </insert>
......
<?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.push.dao.impl.PersonalAppletsDaoImpl" >
<resultMap id="BaseResultMap" type="com.pcloud.book.push.entity.PersonalApplets" >
<id column="id" property="id" jdbcType="BIGINT" />
<result column="applets_id" property="appletsId" jdbcType="VARCHAR" />
<result column="slogan" property="slogan" jdbcType="VARCHAR" />
<result column="slogan_img_url" property="sloganImgUrl" jdbcType="VARCHAR" />
<result column="applets_url" property="appletsUrl" jdbcType="VARCHAR" />
<result column="create_time" property="createTime" jdbcType="TIMESTAMP" />
<result column="update_time" property="updateTime" jdbcType="TIMESTAMP" />
</resultMap>
<sql id="Base_Column_List" >
id, applets_id, slogan, slogan_img_url, applets_url, create_time, update_time
</sql>
<insert id="insert" parameterType="com.pcloud.book.push.entity.PersonalApplets" useGeneratedKeys="true" keyProperty="id">
insert into personal_applets ( applets_id,
slogan, slogan_img_url, applets_url,
create_time, update_time
)
values (#{appletsId,jdbcType=VARCHAR}, #{slogan,jdbcType=VARCHAR},
#{sloganImgUrl,jdbcType=VARCHAR}, #{appletsUrl,jdbcType=VARCHAR},
now(), now()
)
</insert>
<select id="selectById" resultMap="BaseResultMap">
select <include refid="Base_Column_List"/>
from personal_applets where id=#{id}
</select>
<select id="getAllApplets" parameterType="map" resultMap="BaseResultMap">
select <include refid="Base_Column_List"/>
from personal_applets
where 1=1
<if test="appletsId!=null">
and applets_id=#{appletsId}
</if>
order by create_time desc
</select>
<update id="update" parameterType="com.pcloud.book.push.entity.PersonalApplets">
update personal_applets
<set>
<if test="appletsId != null">
applets_id = #{appletsId,jdbcType=VARCHAR},
</if>
<if test="slogan != null">
slogan = #{slogan,jdbcType=VARCHAR},
</if>
<if test="sloganImgUrl != null">
slogan_img_url = #{sloganImgUrl,jdbcType=VARCHAR},
</if>
<if test="appletsUrl != null">
applets_url = #{appletsUrl,jdbcType=VARCHAR},
</if>
update_time = NOW(),
</set>
where id = #{id,jdbcType=BIGINT}
</update>
<delete id="deleteById">
delete from personal_applets where id=#{id}
</delete>
</mapper>
\ No newline at end of file
...@@ -22,12 +22,13 @@ ...@@ -22,12 +22,13 @@
<result column="update_time" property="updateTime" jdbcType="TIMESTAMP" /> <result column="update_time" property="updateTime" jdbcType="TIMESTAMP" />
<result column="send_time" property="sendTime" jdbcType="TIMESTAMP" /> <result column="send_time" property="sendTime" jdbcType="TIMESTAMP" />
<result column="resource_id" property="resourceId" jdbcType="BIGINT"/> <result column="resource_id" property="resourceId" jdbcType="BIGINT"/>
<result column="personal_applets_id" property="personalAppletsId" jdbcType="BIGINT"/>
</resultMap> </resultMap>
<sql id="Base_Column_List" > <sql id="Base_Column_List" >
id, push_id, item_type, text_content, link_url, link_title, link_description, id, push_id, item_type, text_content, link_url, link_title, link_description,
link_image_url, image_url, app_id, app_url, product_id, product_url, push_status, link_image_url, image_url, app_id, app_url, product_id, product_url, push_status,
create_user, create_time, update_user, update_time, send_time, resource_id create_user, create_time, update_user, update_time, send_time, resource_id,personal_applets_id
</sql> </sql>
<insert id="insert" parameterType="com.pcloud.book.push.entity.SelfPushItem" useGeneratedKeys="true" keyProperty="id"> <insert id="insert" parameterType="com.pcloud.book.push.entity.SelfPushItem" useGeneratedKeys="true" keyProperty="id">
...@@ -36,14 +37,14 @@ ...@@ -36,14 +37,14 @@
link_description, link_image_url, image_url, link_description, link_image_url, image_url,
app_id, app_url, product_id, app_id, app_url, product_id,
product_url, push_status, create_user, product_url, push_status, create_user,
create_time, update_user, update_time, send_time, resource_id create_time, update_user, update_time, send_time, resource_id,personal_applets_id
) )
values (#{pushId,jdbcType=BIGINT}, #{itemType,jdbcType=INTEGER}, values (#{pushId,jdbcType=BIGINT}, #{itemType,jdbcType=INTEGER},
#{textContent,jdbcType=VARCHAR}, #{linkUrl,jdbcType=VARCHAR}, #{linkTitle,jdbcType=VARCHAR}, #{textContent,jdbcType=VARCHAR}, #{linkUrl,jdbcType=VARCHAR}, #{linkTitle,jdbcType=VARCHAR},
#{linkDescription,jdbcType=VARCHAR}, #{linkImageUrl,jdbcType=VARCHAR}, #{imageUrl,jdbcType=VARCHAR}, #{linkDescription,jdbcType=VARCHAR}, #{linkImageUrl,jdbcType=VARCHAR}, #{imageUrl,jdbcType=VARCHAR},
#{appId,jdbcType=BIGINT}, #{appUrl,jdbcType=VARCHAR}, #{productId,jdbcType=BIGINT}, #{appId,jdbcType=BIGINT}, #{appUrl,jdbcType=VARCHAR}, #{productId,jdbcType=BIGINT},
#{productUrl,jdbcType=VARCHAR}, #{pushStatus,jdbcType=INTEGER}, #{createUser,jdbcType=BIGINT}, #{productUrl,jdbcType=VARCHAR}, #{pushStatus,jdbcType=INTEGER}, #{createUser,jdbcType=BIGINT},
now(), #{updateUser,jdbcType=BIGINT}, now(), #{sendTime}, #{resourceId} now(), #{updateUser,jdbcType=BIGINT}, now(), #{sendTime}, #{resourceId},#{personalAppletsId}
) )
</insert> </insert>
...@@ -68,7 +69,8 @@ ...@@ -68,7 +69,8 @@
update_user, update_user,
update_time, update_time,
send_time, send_time,
resource_id resource_id,
personal_applets_id
) values ) values
<foreach collection="list" item="item" index="index" separator=","> <foreach collection="list" item="item" index="index" separator=",">
( (
...@@ -90,7 +92,8 @@ ...@@ -90,7 +92,8 @@
#{item.updateUser,jdbcType=BIGINT}, #{item.updateUser,jdbcType=BIGINT},
NOW(), NOW(),
#{item.sendTime}, #{item.sendTime},
#{item.resourceId} #{item.resourceId},
#{item.personalAppletsId}
) )
</foreach> </foreach>
</insert> </insert>
...@@ -151,6 +154,56 @@ ...@@ -151,6 +154,56 @@
i.create_time DESC, i.id DESC i.create_time DESC, i.id DESC
</select> </select>
<select id="getSendAppletsRecords" parameterType="map" resultType="com.pcloud.book.push.dto.PersonalAppletsRecordDTO">
SELECT
p.alt_id altId,
p.id pushId,
i.id pushItemId,
i.item_type itemType,
i.push_status pushStatus,
i.create_time createTime,
min(i.send_time) sendTime,
p.create_user createUser,
p.start_time startTime,
p.end_time endTime,
p.push_send_time pushSendTime,
p.week_days weekDays,
p.push_type pushType,
a.id personalAppletsId,
a.applets_id appletsId,
a.applets_url appletsUrl,
a.slogan ,
a.slogan_img_url sloganImgUrl,
(select count(1) from self_push_user where push_id=p.id) userCount
FROM
self_push_item i
LEFT JOIN self_push p ON i.push_id = p.id
LEFT JOIN personal_applets a ON a.id=i.personal_applets_id
WHERE
1 = 1
and i.personal_applets_id is not null
<if test="startTime != null and endTime != null">
AND (
(i.send_time BETWEEN #{startTime} AND #{endTime} )
OR (p.start_time >= #{startTime} AND p.end_time &lt;= #{endTime})
)
</if>
<if test="pushStatus != null">
AND i.push_status = #{pushStatus}
</if>
<choose>
<when test="partyId == 0">
AND p.alt_id IS NOT NULL AND p.alt_id !=""
</when>
<otherwise>
AND p.create_user = #{partyId}
</otherwise>
</choose>
group by push_id
ORDER BY
i.create_time DESC, i.id DESC
</select>
<update id="updatePushStatusByPushId" parameterType="map"> <update id="updatePushStatusByPushId" parameterType="map">
UPDATE self_push_item UPDATE self_push_item
SET push_status = #{pushStatus} SET push_status = #{pushStatus}
......
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